[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

posted @   逆火狂飙  阅读(289)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2018-12-24 【高中数学/导数】函数f(x)=cosx+(x+1)sinx+1在区间[0,2*PI]的最小值,最大值分别是?(全国统考高考真题)
2018-12-24 【高中数学/三角函数】设x,y为实数,若4x^2+y^2+xy=1,求2x+y的最大值?
2017-12-24 证明:一个数的各位数之和能被3整除,则该数能被3整除
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东
点击右上角即可分享
微信分享提示