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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 大漠孤烟 中级黑马   /  2014-5-7 20:55  /  1400 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Map集合中元素排序比较,都是先判断比较的是hashCode值,再equals比较对象内容,问一下hashCode相同 equals对象内容不一定相同,但是反过来如果equals比较对象内容相同,哈希值是否一定相同,为什么,能否讲解一下,谢谢!!

2 个回复

倒序浏览
Java
对于eqauls方法和hashCode方法是这样规定的:1
、如果两个对象相同,那么它们的hashCode值一定要相同;2、如果两个对象的hashCode
相同,它们并不一定相同    上面说的对象相同指的是用eqauls
方法比较。

具体你可以查看API中Object类中的hashcode和equals方法的说明
回复 使用道具 举报
hashCode()的返回值是根据对象地算出来的int类型的数值 ,hashcode相等,则对象相同;hashCode 不等,对象可能等(或不等),所以若hashcode相等,则再进行equals()判断;equals()比较是内存对象在内存中的地址值。

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马