[Java数据结构]HashSet,LinkedHashSet,TreeeSet

Java中Set表示一个不包括重复元素的集合,它有HashSet,LinkedHashSet,TreeeSet三种常用实现。

HashSet是Set的最常用实现,它常被用来清除重复元素。

例程:

        Set<String> filterSet=new HashSet<String>();
        
        filterSet.add("b");
        filterSet.add("b");
        filterSet.add("c");
        filterSet.add("c");
        filterSet.add("a");
        filterSet.add("a");
        filterSet.add("aa");
        filterSet.add("1");
        filterSet.add("3");
        filterSet.add("s");
        
        for(String str:filterSet) {
            System.out.println(str);
        }

输出:

aa
a
1
b
c
3
s

从上面我们可以看出,HashSet能清除掉重复元素,但不能保持插入顺序,也不会自动排序。

LinkedHashSet不但能清除重复,而且能保持元素的插入顺序。

        Set<String> filterSortSet=new LinkedHashSet<String>();
        filterSortSet.add("d");
        filterSortSet.add("b");
        filterSortSet.add("c");
        filterSortSet.add("c");
        filterSortSet.add("a");
        filterSortSet.add("a");
        filterSortSet.add("1");
        filterSortSet.add("1");
        filterSortSet.add("3");
        filterSortSet.add("s");
        
        for(String str:filterSortSet) {
            System.out.println(str);
        }

输出:

d
b
c
a
1
3
s

TreeSet也能清除重复,且内部自动排序。

例程:

        Set<String> filterSortSet=new TreeSet<String>();
        filterSortSet.add("d");
        filterSortSet.add("b");
        filterSortSet.add("c");
        filterSortSet.add("c");
        filterSortSet.add("a");
        filterSortSet.add("a");
        filterSortSet.add("1");
        filterSortSet.add("1");
        filterSortSet.add("3");
        filterSortSet.add("s");
        
        for(String str:filterSortSet) {
            System.out.println(str);
        }

输出:

1
3
a
b
c
d
s

--END-- 2019-12-24 09:38

原文地址:https://www.cnblogs.com/heyang78/p/12089517.html