前言
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
网友评论