黑马程序员技术交流社区
标题:
有关集合的问题。
[打印本页]
作者:
k1453711238
时间:
2017-8-5 14:11
标题:
有关集合的问题。
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
作者:
火小枪
时间:
2017-8-16 15:09
不同的set实现类保证元素唯一性的原理不同:
1:HastSet
先比较两个对象的hash()值,如果不相等再比较equals()的值
2:TreeSet
需要对象实现Comparable接口 ,或者创建TreeSet实例时传入Comparator的实例。两个对象大小取决于compare()方法的返回值
作者:
DreamBoyMrsLin
时间:
2017-8-18 22:56
而楼上说的的第二个,基本不会用,HactSet也用的比较少,但是里面说的hash值,是java对其里面的值经过一定的算法,得出的结果,但是不可否认的是通过这个算法计算出的值,有可能是一样的,那么java对这种算法进行了加强,就是通过equals比对两个值是否相等,通过这两个算法,排除了重复的可能,也确保了值的唯一性
作者:
Oliverwqcwrw
时间:
2017-8-20 22:41
Hashcode和equals方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2