黑马程序员技术交流社区

标题: 集合中的元素比较疑问 [打印本页]

作者: 大漠孤烟    时间: 2014-5-7 20:55
标题: 集合中的元素比较疑问
Map集合中元素排序比较,都是先判断比较的是hashCode值,再equals比较对象内容,问一下hashCode相同 equals对象内容不一定相同,但是反过来如果equals比较对象内容相同,哈希值是否一定相同,为什么,能否讲解一下,谢谢!!
作者: 张耀扬    时间: 2014-5-8 00:28
Java
对于eqauls方法和hashCode方法是这样规定的:1
、如果两个对象相同,那么它们的hashCode值一定要相同;2、如果两个对象的hashCode
相同,它们并不一定相同    上面说的对象相同指的是用eqauls
方法比较。

具体你可以查看API中Object类中的hashcode和equals方法的说明
作者: 来男.    时间: 2014-5-10 20:47
hashCode()的返回值是根据对象地算出来的int类型的数值 ,hashcode相等,则对象相同;hashCode 不等,对象可能等(或不等),所以若hashcode相等,则再进行equals()判断;equals()比较是内存对象在内存中的地址值。






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