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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我能驾驭住 中级黑马   /  2012-6-3 09:30  /  2888 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

听了张老师讲的课:
Hashcode是比较区域的对象,equals是比较值的。。
先比较那一个呢,是不是对象不相同,值都不用比较了?

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

2 个回复

倒序浏览
当使用HashSet 时,hashCode()方法就会得到调用,判断已经存储在集合中的对象的 hash code 值是否与增加的对象的hash code 值一致;如果不一致,直接加进去;如

果一致,再进行equals 方法的比较,equals 方法如果返回true ,表示对象已经加进 去了,就不会再增加新的对象,否则加进去.

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
对象是否相同是看他们的哈希值,如果哈希值相同,则对象相同,否则就不相同。一般的对象的比较是通过equals方法来比较,提前是你自己要去重写该方法,有自己的比较的方式,可以不重写hashCode,但是你的对象和集合相关时,就必须重写equals方法和hashCode方法,所以良好的编程习惯就是两个方法都重写。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马