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

MarsZ 2012-02-18 07:28:24
如题,这个面试题我在很多地方看到不同的答案了,有说可有不同的hash code的 http://zhidao.baidu.com/question/121320206.html ,有说hashcode一定相同的(http://baike.baidu.com/view/551991.htm)
请问到底对不对啊???给强力理由。。
...全文
73 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
MarsZ 2012-02-18
  • 打赏
  • 举报
回复
好吧[Quote=引用 1 楼 ldh911 的回复:]
视环境情况而定。

因为 hashCode() 和 equals() 这两个函数都是可以自定义的,你完全可以写出一个equals函数相等的情况下hashCode()却完全不一样的类,有啥不可以呢?

YD点甚至可以 public int hashCode() { return new Random().next();}


但是我们经常强调要遵循约定俗成,否则可能让别人很晕,甚至让自……
[/Quote]
MiceRice 2012-02-18
  • 打赏
  • 举报
回复
视环境情况而定。

因为 hashCode() 和 equals() 这两个函数都是可以自定义的,你完全可以写出一个equals函数相等的情况下hashCode()却完全不一样的类,有啥不可以呢?

YD点甚至可以 public int hashCode() { return new Random().next();}


但是我们经常强调要遵循约定俗成,否则可能让别人很晕,甚至让自己的程序很奇怪。
如果基于这个考虑的话:equals()的对象值,hashCode()应该要相等。

50,542

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧