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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© huadengaiyue 中级黑马   /  2015-5-29 18:49  /  400 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?

4 个回复

倒序浏览
对。。因为如果该对象没有复写hashcode方法,则会调用Object的hashcode方法,Object的hashcode方法放回的事对象地址值,,2个不同的对象,地址值必然不相等。。
回复 使用道具 举报
可以的,比如你的自定义类,你可以随意拟定equals()和hashcode()方法的内容,但是原价上,建议equals为true的hashcode相等,同理,逆否命题也成立
回复 使用道具 举报
equals 和 hashCode 是两个方法,想怎么写随你,你完全可以让一个对象和任意对象的equals都返回true,就是里面只有一句return true;然后hashCode的返回值不同
回复 使用道具 举报
给楼上的点个赞
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马