黑马程序员技术交流社区

标题: Hashcode和equals的区别: [打印本页]

作者: 我能驾驭住    时间: 2012-6-3 09:30
标题: Hashcode和equals的区别:
听了张老师讲的课:
Hashcode是比较区域的对象,equals是比较值的。。
先比较那一个呢,是不是对象不相同,值都不用比较了?

作者: 田林    时间: 2012-6-3 10:16
当使用HashSet 时,hashCode()方法就会得到调用,判断已经存储在集合中的对象的 hash code 值是否与增加的对象的hash code 值一致;如果不一致,直接加进去;如

果一致,再进行equals 方法的比较,equals 方法如果返回true ,表示对象已经加进 去了,就不会再增加新的对象,否则加进去.
作者: 何拴绪    时间: 2012-6-3 11:29
对象是否相同是看他们的哈希值,如果哈希值相同,则对象相同,否则就不相同。一般的对象的比较是通过equals方法来比较,提前是你自己要去重写该方法,有自己的比较的方式,可以不重写hashCode,但是你的对象和集合相关时,就必须重写equals方法和hashCode方法,所以良好的编程习惯就是两个方法都重写。




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