Java hashCode()不带equals()?

Java hashCode()不带equals()?,java,equals,hashcode,Java,Equals,Hashcode,我知道实现/重写equals()而不重写hashCode()违反了equals/hashCode契约 但是,如果一个类只实现hashCode()而不实现equals()?如果一个类只有hashCode(),那么这就不是问题了:equal()的对象将具有相同的hashCode() 这是因为equals()将返回到Object的实现,即identity,它当然会给出相同的hashCode()如果对象相同,它必须具有相同的hashCode。 如果对象不同,则不必使用不同的哈希代码 因此,当hashCo

我知道实现/重写
equals()
而不重写
hashCode()
违反了equals/hashCode契约


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

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


这是因为
equals()
将返回到
Object
的实现,即identity,它当然会给出相同的
hashCode()
如果对象相同,它必须具有相同的hashCode。
如果对象不同,则不必使用不同的哈希代码

因此,当hashCode相同时,它不一定是相同的对象。
但是当hashCode不同时,它不能是同一个对象