首页 > 解决方案 > 为什么在 Java 中同时覆盖 equals() 和 hashCode()?

问题描述

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

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

标签: javaobjectoverridingequalshashcode

解决方案


equals像 HashSet 这样的几个集合依赖于并且hashCode是一致的这一事实。这意味着hashCode当对象在 的意义上相等时,它必须给出相同的值equals


推荐阅读