我知道实现/覆盖equals()
而不覆盖hashCode()
会违反equals / hashCode合同。
但是如果一个类只实现hashCode()
而不是equals()
呢?
答案 0 :(得分:1)
如果某个类只有hashCode()
,那么这不是问题:equal()
的对象将具有相同的hashCode()
。
这是因为equals()
将回归Object
的实施,即身份,这当然会提供相同的hashCode()
答案 1 :(得分:0)
如果对象相同,则它必须具有相同的hashCode 如果对象不同,则不必具有不同的hashCode。
所以当hashCode相同时,它不一定是同一个对象 但是当hashCode不同时,它必须不是同一个对象。