equals判断相等时,hashCode的结果一定相等吗?

equals判断相等时,hashCode的结果一定相等吗?

​如题,前两天面试时,面试官说equals相等,hashCode不一定相等。

是这样吗

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,是的,equals相等,hashCode的结果不一定相等。

例如:

http://img1.sycdn.imooc.com//climg/60024c2b09ced39406030537.jpg

测试结果如下:

http://img1.sycdn.imooc.com//climg/60024c7c09b392e707840209.jpg

祝学习愉快~

  • mahsiaoko 提问者 #1

    http://img1.sycdn.imooc.com//climg/60024e05091a361d09840503.jpg

    这个是后面面试部分的   这个这样说是不是有点问题了?

    2021-01-16 10:25:02
  • 好帮手慕阿慧 回复 提问者 mahsiaoko #2

    同学你好,equals方法相等,hashCode可以不相等。ppt中说两个对象equals()相等,那么hashCode()就一定相等,其实是一种规范,如果我们不遵从这个规范,那么就会出现equals方法相等,hashCode不相等的情况。所以,原则上,两个对象如果equals()相等,那么hashCode()就一定相等。

    祝学习愉快~

    2021-01-16 13:47:00
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师