天天看点

Java中HashSet、LinkedHashSet和TreeSet的使用

HashSet<String> hashSet = new HashSet<>();
        hashSet.add("a");
        hashSet.add("a");
        hashSet.add("c");
        hashSet.add("b");
        hashSet.add("e");
        System.out.println("添加顺序\n[a,c,b,e]");
        System.out.println("HashSet\n" + hashSet);

        LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>();
        linkedHashSet.add("a");
        linkedHashSet.add("a");
        linkedHashSet.add("c");
        linkedHashSet.add("b");
        linkedHashSet.add("e");
        System.out.println("LinkedHashSet\n" + linkedHashSet);

        TreeSet<String> treeSet = new TreeSet<>();
        treeSet.add("a");
        treeSet.add("a");
        treeSet.add("c");
        treeSet.add("b");
        treeSet.add("e");
        System.out.println("TreeSet默认构造器\n"+treeSet);

        TreeSet<String> treeSet2 = new TreeSet<>(new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                int result = o1.compareTo(o2);
                if(result > 0){
                    return -1;
                }else if(result < 0){
                    return 1;
                }
                return 0;
            }
        });
        treeSet2.add("a");
        treeSet2.add("a");
        treeSet2.add("c");
        treeSet2.add("b");
        treeSet2.add("e");
        System.out.println("TreeSet自定义Comparator构造器\n" + treeSet2);

        System.out.println();
        System.out.println("TreeSet:"+treeSet);
        System.out.println("first():" + treeSet.first());
        System.out.println("last():" + treeSet.last());
        System.out.println("ceiling(\"d\") >= :" + treeSet.ceiling("d"));
        System.out.println("floor(\"d\") <= :" + treeSet.floor("d"));
        System.out.println("higher(\"d\") > :" + treeSet.higher("d"));
        System.out.println("lower(\"d\") < :" + treeSet.lower("d"));
        System.out.println("subSet(\"a\",\"b\") :" + treeSet.subSet("a","b"));
        System.out.println("subSet(\"a\",true,\"b\",true) :" + treeSet.subSet("a",true,"b",true));
        System.out.println("tailSet(\"b\") :" + treeSet.tailSet("b"));
        System.out.println("tailSet(\"b\",false) :" + treeSet.tailSet("b",false));
        System.out.println("获取并删除第一个pollFirst():"+treeSet.pollFirst());
        System.out.println("获取并删除最后一个pollLast():" + treeSet.pollLast());
           
添加顺序
[a,c,b,e]
HashSet
[a, b, c, e]
LinkedHashSet
[a, c, b, e]
TreeSet默认构造器
[a, b, c, e]
TreeSet自定义Comparator构造器
[e, c, b, a]

TreeSet:[a, b, c, e]
first():a
last():e
ceiling("d") >= :e
floor("d") <= :c
higher("d") > :e
lower("d") < :c
subSet("a","b") :[a]
subSet("a",true,"b",true) :[a, b]
tailSet("b") :[b, c, e]
tailSet("b",false) :[c, e]
获取并删除第一个pollFirst():a
获取并删除最后一个pollLast():e