黑马程序员技术交流社区

标题: HashSet [打印本页]

作者: qincai    时间: 2014-6-12 23:50
标题: HashSet
本帖最后由 qincai 于 2014-6-13 22:47 编辑

当存字符串时,如何保证的元素唯一性?

作者: 轩辕冰晨    时间: 2014-6-13 00:02
本帖最后由 轩辕冰晨 于 2014-6-13 00:06 编辑

通过元素的两个方法,equals和hashCode来实现的。
会先比较hashCode值,相等时才会去比较equals。查询和删除也是使用这两个方法。
作者: qincai    时间: 2014-6-13 19:24
轩辕冰晨 发表于 2014-6-13 00:02
通过元素的两个方法,equals和hashCode来实现的。
会先比较hashCode值,相等时才会去比较equals。查询和删 ...

字符串也会去比较equals方法吗?
作者: moon1993zs    时间: 2014-6-13 19:45
hash 值相等的元素也会加入到添加HashSet,所以必须使用equals判断内容是否相等。
作者: qincai    时间: 2014-6-13 19:54
moon1993zs 发表于 2014-6-13 19:45
hash 值相等的元素也会加入到添加HashSet,所以必须使用equals判断内容是否相等。 ...

但对于字符串来说不可能出现hashcode值相等的情况的吧
作者: 爨庚轩    时间: 2014-6-13 20:01
hashCode()和equals()方法的返回值必须一致,这样才能保证添加元素的唯一性
作者: moon1993zs    时间: 2014-6-13 20:05
爨庚轩 发表于 2014-6-13 20:01
hashCode()和equals()方法的返回值必须一致,这样才能保证添加元素的唯一性

对,添加对象引用也是这样,所以以后用到hashSet 就重写hashCode,equals。




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