嗯 关于重写equlas方法的问题

来源:5-2 作业题

hello123peace

2019-04-19 09:45:08

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

写回答

3回答

吃吃吃鱼的猫

2019-04-19

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

0

吃吃吃鱼的猫

2019-04-19

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

0
hello123peace
h 那么 利用eclipse直接把这两个方法弄出来 equals不改动可以吗?
h019-04-19
共1条回复

吃吃吃鱼的猫

2019-04-19

同学你好,

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

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

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

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

0
hello123peace
h 那可是这样不就成了只有equals重写了 但是hashcode并没有重写吗
h019-04-19
共1条回复

0 学习 · 14452 问题

查看课程