zoukankan      html  css  js  c++  java
  • 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);
        }
    }
  • 相关阅读:
    Cake
    抽屉评论数据库设计
    学习网站
    栈和堆简介
    链表相关操作
    链表操作
    Django form验证二
    django ajax提交form表单数据
    jquery中 after append appendTo 的区别
    Python json.dumps 自定义序列化操作
  • 原文地址:https://www.cnblogs.com/cuijinlong/p/15155700.html
Copyright © 2011-2022 走看看