A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qincai 中级黑马   /  2014-6-12 23:50  /  1220 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 qincai 于 2014-6-13 22:47 编辑

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

6 个回复

倒序浏览
本帖最后由 轩辕冰晨 于 2014-6-13 00:06 编辑

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

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

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

对,添加对象引用也是这样,所以以后用到hashSet 就重写hashCode,equals。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马