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

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

我们先来看一下java官方 jdk中关于equals方法和hashCode方法的介绍:

不知道读者们注意到一个细节没有,就是:

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

那么为什么equals方法重写时,有必要重写hashCode方法呢?

其实这个涉及到hash算法,比较复杂,我们先来记下答案:

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

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


相关文章
|
2天前
|
Java
hashCode()和 equals()方法的默认实现
在Java中,`hashCode()` 和 `equals()` 方法的默认实现由 `Object` 类提供。`equals()` 默认比较对象引用是否相同,`hashCode()` 则返回对象的内存地址的整数表示。为了确保哈希表等数据结构的正确性,当重写 `equals()` 时,通常也需要重写 `hashCode()`。
|
1天前
|
存储 Java
两个对象的 hashCode()相同,则 equals()
当两个对象的 `hashCode()` 方法返回值相同时,这两个对象的 `equals()` 方法不一定返回 `true`。`hashCode()` 相同仅表示两对象可能相等,需进一步通过 `equals()` 方法验证对象是否真正相等。
|
3月前
|
存储 Java
|
4月前
|
Java 容器
equals与hashcode的区别与联系
equals与hashcode的区别与联系
|
索引
9. 说说hashCode() 和 equals() 之间的关系?
9. 说说hashCode() 和 equals() 之间的关系?
68 0
9. 说说hashCode() 和 equals() 之间的关系?
|
存储
"=="和 equals 方法究竟有什么区别?
"=="和 equals 方法究竟有什么区别?
126 0
|
存储 缓存 Java
深入理解= = 、equals()与hashcode()的关系
理解= = 、equals()与hashcode()的关系
107 0
深入理解= = 、equals()与hashcode()的关系
|
算法 安全 Java
@EqualsAndHashCode - 相等更简单:从对象的字段生成hashCode和equals实现
@EqualsAndHashCode - 相等更简单:从对象的字段生成hashCode和equals实现
|
存储 NoSQL
简单讲一下 HashCode() 与 equals()方法
简单讲一下 HashCode() 与 equals()方法.
110 0
hashCode和equals的区别
hashCode和equals的区别
324 0