• set<Integer> list<Integer>互转


    set集合元素唯一,无序;list集合元素可以重复,有序。

    1、set转list:数据保持不变,顺序发生变化,可以使用Collections.sort进行排序(Collections.shuffle 随机排序,Collections.reverse 反转顺序)。

    2、list转set:去除重复数据,只保留一个。转成linkedHashSet时,原顺序不变;转成treeSet可以排序,转成hashSet无序。

    package set;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.HashSet;
    import java.util.LinkedHashSet;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Set;
    import java.util.Vector;
    
    public class ReverseLinkedHashSet {
    
        public static void main(String args[]){
            testSetConvertList();
            testListConvertSet();
        }
        static void testSetConvertList(){
            Set<Integer> hashSet = new HashSet<Integer>();
            Set<Integer> linkedHashSet = new LinkedHashSet<Integer>();
            for(int i=1 ;i<20;i++){
                hashSet.add(i);
                linkedHashSet.add(i);
            }
            System.out.println("hashSet: "+hashSet);
            System.out.println("linkedHashSet: "+linkedHashSet);
            List<Integer> hashSetList = new ArrayList<Integer>(hashSet);
            List<Integer> linkedHashSetList = new ArrayList<Integer>(linkedHashSet);
            System.out.println("hashSet转list集合: "+hashSetList);
            System.out.println("linkedHashSet转list集合: "+linkedHashSetList);
            Collections.reverse(linkedHashSetList);
            System.out.println("反转排序linkedHashSetList集合: "+linkedHashSetList);
        }
        
        @SuppressWarnings("serial")
        static void testListConvertSet(){
            List<Integer> vector = new Vector<Integer>();
            List<Integer> linkedList = new LinkedList<Integer>();
            List<Integer> dataList1 = new LinkedList<Integer>(){{add(1);add(2);add(2);add(4);add(5);}};
            List<Integer> dataList2 = new LinkedList<Integer>(){{add(7);add(6);add(16);add(17);add(18);add(19);add(19);}};
            List<Integer> dataList3 = new LinkedList<Integer>(){{add(11);add(12);add(13);add(14);add(15);}};
            
            vector.addAll(dataList1);
            vector.addAll(dataList2);
            vector.addAll(dataList3);
            linkedList.addAll(dataList1);
            linkedList.addAll(dataList2);
            linkedList.addAll(dataList3);
            System.out.println("vector: "+vector);
            System.out.println("linkedList: "+linkedList);
            Collections.sort(vector);
            System.out.println("排序vector: "+vector);
            Collections.shuffle(vector);
            System.out.println("随机排序vector: "+vector);
            Collections.sort(vector);
            System.out.println("排序vector: "+vector);
            Collections.reverse(vector);
            System.out.println("反转排序vector: "+vector);
            Set<Integer> hashSet = new HashSet<Integer>(linkedList);
            Set<Integer> linkedSet = new LinkedHashSet<Integer>(linkedList);
            System.out.println("hashSet: "+hashSet);
            System.out.println("linkedSet: "+linkedSet);
        }
    }
  • 相关阅读:
    Attribute特性 与 Reflection反射技术
    星星评分控件----------WebForm服务器控件开发系列
    CheckBox美化控件----------WinForm控件开发系列
    RadioButton美化控件----------WinForm控件开发系列
    分割线控件----------WinForm控件开发系列
    mysql数据库中自增ID不自增1的解决办法
    [WPF] 操作DataGrid单元格
    [WPF] DataGrid单元格中的TextBox绑定数据源
    WPF中同类型实体间的消息推送
    C#获取屏幕工作区大小
  • 原文地址:https://www.cnblogs.com/cuijinlong/p/15155700.html
Copyright © 2020-2023  润新知