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() 之间的关系?
#yyds干货盘点# ==,equals,hashcode三者之间的区别