为什么要覆盖 Java 中的 equals() 和 hashCode()?

Why overriding both equals() and hashCode() in Java?

也许这个问题对你来说似乎很可笑,但我显然不明白(我是初级Java)为什么我们要经常一起覆盖equals()hashCode()

的确,我可以为某些class覆盖equals()来进行特定的比较,但为什么我也要覆盖hashCode()呢? 非常感谢!

几个集合,例如 HashSet 依赖于 equalshashCode 是一致的这一事实。这意味着当对象在 equals.

的意义上相等时,hashCode 必须给出相同的值