Object 类作为 Java 中所有对象的超类提供了以下方法:

我们来看一看 JDK1.8中对于 equals()方法的描述:

可以看到提醒我们如果重写了 equals()方法一定要重写 hashCode 方法。
我们再来看一看对于 hashCode() 方法的描述:

这个地方说明了三个事:
- 对同一个对象的多次 hashCode()方法调用应该返回同一个值
- 一个对象的equals()方法相等,则hashCode()方法的调用结果一定相等。
- 对 equals()方法调用不相等的对象,不要求 hashCode()返回的值不相等,但是建议尽可能不相等,降低 hash 表进行 hash 的时候的冲突几率。
本文详细探讨了Java中Object类的equals()和hashCode()方法,解释了为什么在重写equals()方法时必须重写hashCode(),以及这两个方法的正确使用如何避免hash表冲突。

731

被折叠的 条评论
为什么被折叠?



