Java中hashSet与treeSet的去重原理

地球人都知道set集合是不含重复元素的,那么其去重原理是什么,我们又可以做哪些用途呢?

1,treeSet去重原理:compareTo

可以实现排序及去重:如果compareTo返回0,说明是重复的,返回的是自己的某个属性和另一个对象的某个属性的差值,如果是负数,则往前面排,如果是正数,往后面排;


应用:类实现compareable接口,覆写其compareto方法,根据自己的需要改变其排序及去重规则,比如person类,根据其年龄进行去重和排序


2,hashSet去重原理:
1,hashCode 2,equals是否相同
两个方法可以快速生成,hashCode是几个属性的hashCode共同计算的结果
(基本数据类型的实现类生成的hashCode是其拆箱后的值的比较,跟引用数据类型的规则不同,如Integer类)


应用:从网上过来的数据有的不符合要求,可以通过覆写hashCode和equals方法改变其去重规则,进行自定义去重;
  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值