美文网首页
Java中Set的顺序问题

Java中Set的顺序问题

作者: zombie11 | 来源:发表于2020-03-04 16:00 被阅读0次

    前言

    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
    

    相关文章

      网友评论

          本文标题:Java中Set的顺序问题

          本文链接:https://www.haomeiwen.com/subject/chfblhtx.html