Java 集合的有序和无序总结

1. List 一定是有序的

ArrayList 和 LinkedList 中的元素的顺序是按照添加时的顺序排列的。这就是所说的List 有序。

2. Set 不一定是无序的

HashSet 是无序的,不能保证元素的添加顺序。

LinkedHashSet 可以保证元素的添加顺序。

TreeSet 是根据元素的自然顺序进行排序的(A-Z)

类型是否可以重复是否保证元素添加的顺序是否保证元素自然的顺序(A-Z)
List可以
HashSet不可以
LinkedHashSet不可以
TreeSet不可以

 

        // 1. ArrayList 输出 s1 s3 s5 s4 s2
        List<String> arrayList = new ArrayList<>();
        arrayList.add("s1");
        arrayList.add("s3");
        arrayList.add("s5");
        arrayList.add("s4");
        arrayList.add("s2");
        System.out.println(">>>>>>>>>>>>>>>>> ArrayList" );
        for (String s : arrayList) {
            System.out.print(s + " ");
        }
        System.out.println();

        // 2. LinkedList 输出 s1 s3 s5 s4 s2
        List<String> linkedList = new LinkedList<>();
        linkedList.add("s1");
        linkedList.add("s3");
        linkedList.add("s5");
        linkedList.add("s4");
        linkedList.add("s2");
        System.out.println(">>>>>>>>>>>>>>>>> LinkedList" );
        for (String s : linkedList) {
            System.out.print(s + " ");
        }
        System.out.println();

        // 3. HashSet 输出 s3 s4 s5 s1 s2
        Set<String> hashSet = new HashSet<>();
        hashSet.add("s1");
        hashSet.add("s3");
        hashSet.add("s5");
        hashSet.add("s4");
        hashSet.add("s2");
        System.out.println(">>>>>>>>>>>>>>>>> HashSet" );
        for (String s : hashSet) {
            System.out.print(s + " ");
        }
        System.out.println();

        // 4. LinkedHashSet 输出 s1 s3 s5 s4 s2
        Set<String> linkedHashSet = new LinkedHashSet<>();
        linkedHashSet.add("s1");
        linkedHashSet.add("s3");
        linkedHashSet.add("s5");
        linkedHashSet.add("s4");
        linkedHashSet.add("s2");
        System.out.println(">>>>>>>>>>>>>>>>> LinkedHashSet" );
        for (String s : linkedHashSet) {
            System.out.print(s + " ");
        }
        System.out.println();

        // 5. TreeSet 输出 s1 s2 s3 s4 s5
        Set<String> treeSet = new TreeSet<>();
        treeSet.add("s1");
        treeSet.add("s3");
        treeSet.add("s5");
        treeSet.add("s4");
        treeSet.add("s2");
        System.out.println(">>>>>>>>>>>>>>>>> TreeSet" );
        for (String s : treeSet) {
            System.out.print(s + " ");
        }

​

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值