嗯 关于重写equlas方法的问题

嗯 关于重写equlas方法的问题

为什么hashcode和equals方法要一起写  而且 每次重写equals方法的时候  hashcode就啥都不需要动吗?  

正在回答 回答被采纳积分+1

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

3回答
吃吃吃鱼的猫 2019-04-19 18:40:25

同学你好,可以的哦~如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

吃吃吃鱼的猫 2019-04-19 17:58:44

同学你好,是的,一般情况下对象只重写equals方法。hashcode的方法只有在自己想定义一个哈希算法的时候才会重写,一般不会重写。如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 hello123peace #1
    那么 利用eclipse直接把这两个方法弄出来 equals不改动可以吗?
    2019-04-19 18:01:41
吃吃吃鱼的猫 2019-04-19 11:59:15

同学你好,

equals()方法与hashCode()的通用协定是:

1、如果两个对象相等(equal),那么必须拥有相同的哈希码(hash code),此时对象相等。
2、如果两个对象有相同的哈希值(hash code),(equals)方法不一定相等,这时两个对象不一定相等。

所以,比较对象时,hashcode和equals方法要一起写,但每次重写equals方法的时候  hashcode不需要重写。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 hello123peace #1
    那可是这样不就成了只有equals重写了 但是hashcode并没有重写吗
    2019-04-19 16:30:00
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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