Java中Set的顺序问题

2020-03-04  本文已影响0人  zombie11

前言

Java中Set继承于Collection接口,是一个不允许出现重复元素的集合,其主要实现且使用最多的类就是HashSet。都知道HashSet是无序的,那么当我们需要用到有序的Set的时候该怎么办呢?

有序性

我们平时所说的有序性分两种情况,插入顺序和自然顺序。
插入顺序指的是集合元素的添加顺序。而自然顺序则是经过集合自动排序后的顺序。

实现类

Set的实现类中LinkedHashSet能按照插入顺序遍历元素;TreeSet能按照自然顺序遍历元素。

LinkedHashSet

public class Order {
    public static void main(String[] args) {
        Set<Integer> set = new LinkedHashSet<Integer>();
        set.add(2);
        set.add(7);
        set.add(4);
        set.add(1);
        for (Integer i : set) {
            System.out.println(i);
        }
    }
}

输出结果为

2
7
4
1

TreeSet

public class Order {
    public static void main(String[] args) {
        Set<Integer> set = new TreeSet<Integer>();
        set.add(2);
        set.add(7);
        set.add(4);
        set.add(1);
        for (Integer i : set) {
            System.out.println(i);
        }
    }
}

输出结果为

1
2
4
7
上一篇 下一篇

猜你喜欢

热点阅读