equals方法和hashCode方法之间的那些事(1.1)

Posted tian.nov

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了equals方法和hashCode方法之间的那些事(1.1)相关的知识,希望对你有一定的参考价值。

我们先来看一下java官方 jdk中关于equals方法和hashCode方法的介绍:
在这里插入图片描述

在这里插入图片描述
不知道读者们注意到一个细节没有,就是:

注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。

那么为什么equals方法重写时,有必要重写hashCode方法呢?
其实这个涉及到hash算法,比较复杂,我们先来记下答案:

为了确保相同数值的内容调用equals方法的结果一样,此时各自调用hashCode方法的结果一样,此时交由同样的哈希算法算出的索引位置相同,减少比较次数,以此提高性能。

关于hash算法呢,读者可以自行查阅相关资料!

谢谢阅读,由于作者水平有限,难免有错误之处,若读者发现错误,还请批评,在留言区留言,我一定会尽快修改的,谢谢。

以上是关于equals方法和hashCode方法之间的那些事(1.1)的主要内容,如果未能解决你的问题,请参考以下文章

hashCode()与 equals() 之间的关系

说说hashCode() 和 equals() 之间的关系?

#yyds干货盘点# ==,equals,hashcode三者之间的区别

重写equals方法为什么通常会重写hashcode方法?

Object类中的toString(),equals(), hashCode()方法之间的关系

图解Java机制