黑马程序员技术交流社区

标题: 分享HashSet如何判断集合中元素是否重复 [打印本页]

作者: 地瓜君    时间: 2014-11-26 19:47
标题: 分享HashSet如何判断集合中元素是否重复


第一件事
做的是判断两个元素的哈希值是否相同,如果相同,代表这两个元素
可能是同一个元素.去执行第二件事。如果两个对象的哈希值不同,
HashSet集合认为这两个对象是不同的对象,不用判断equals,直接添加。
第二件事
在去进行equals比较。如果equals也返回true,
那么hashSet认为这两个元素重复,不可添加第二元素.        
是否重复的元素的一个初始条件,两个对象如果hashCode一样,那么才可以判断是否
重复,通过equals方法判断。
如果两个对象hashCode不一样,就认为这两个对象是不同的对象,不会判断equals
如果在hashCode方法中返回一个常量,但是效率下降,每一次操作都需要进行equals比较.所以为了提高效率,我们在重写hashCode时利用对象的属性获得hashCode




作者: wxnzb502    时间: 2014-11-26 20:53
说的不错         
作者: 与梦逆风而行    时间: 2014-11-26 20:55
前来学习~
作者: Tae丶Yeon    时间: 2014-11-26 23:58
前来学习~
作者: 随风sky    时间: 2014-11-27 00:06
支持一下,继续努力!
作者: 地瓜君    时间: 2014-11-27 20:20
随风sky 发表于 2014-11-27 00:06
支持一下,继续努力!

谢谢啊,互帮互助
作者: 地瓜君    时间: 2014-11-27 20:21
Tae丶Yeon 发表于 2014-11-26 23:58
前来学习~

恩恩。谢啦哈 互相学习哦
作者: chen_32768    时间: 2014-11-27 21:38
重写hashCode和equals方法:),学习了
作者: xingkong123    时间: 2014-11-27 22:38
前来学习。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2