hashCode()没有equals()?

时间:2018-02-06 03:17:35

标签: java equals hashcode

我知道实现/覆盖equals()而不覆盖hashCode()会违反equals / hashCode合同。

但是如果一个类只实现hashCode()而不是equals()呢?

2 个答案:

答案 0 :(得分:1)

如果某个类只有hashCode(),那么这不是问题:equal()的对象将具有相同的hashCode()

这是因为equals()将回归Object的实施,即身份,这当然会提供相同的hashCode()

答案 1 :(得分:0)

如果对象相同,则它必须具有相同的hashCode 如果对象不同,则不必具有不同的hashCode。

所以当hashCode相同时,它不一定是同一个对象 但是当hashCode不同时,它必须不是同一个对象。