为什么要覆盖 Java 中的 equals() 和 hashCode()?
Why overriding both equals() and hashCode() in Java?
也许这个问题对你来说似乎很可笑,但我显然不明白(我是初级Java)为什么我们要经常一起覆盖equals()
和hashCode()
?
的确,我可以为某些class覆盖equals()
来进行特定的比较,但为什么我也要覆盖hashCode()
呢?
非常感谢!
几个集合,例如 HashSet 依赖于 equals
和 hashCode
是一致的这一事实。这意味着当对象在 equals
.
的意义上相等时,hashCode
必须给出相同的值
也许这个问题对你来说似乎很可笑,但我显然不明白(我是初级Java)为什么我们要经常一起覆盖equals()
和hashCode()
?
的确,我可以为某些class覆盖equals()
来进行特定的比较,但为什么我也要覆盖hashCode()
呢?
非常感谢!
几个集合,例如 HashSet 依赖于 equals
和 hashCode
是一致的这一事实。这意味着当对象在 equals
.
hashCode
必须给出相同的值