前言
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









网友评论