hashCode()和equals()方法的重要性体现在什么地方?

Java HashMap依赖hashCode()和equals()确定键值对索引,不正确实现可能导致不同键映射冲突。equals相等对象hashCode必然相等,反之不成立。hashCode用于散列表索引,equals判断对象内容。不重写equals,对象地址不同,即使内容相等,返回也为false。重写equals需遵循自反性、对称性、传递性、一致性和非空性原则,同时要重写hashCode以保持一致性。
摘要由CSDN通过智能技术生成

Java中的HashMap使用hashCode()和equals()方法来确定键值对的索引,当根据键获取值的时候也会用到这两个方法。如果没有正确的实现这两个方法,两个不同的键可能会有相同的hash值,
因此,可能会被集合认为是相等的。而且,这两个方法也用来发现重复元素。所以这两个方法的实现对HashMap的精确性和正确性是至关重要的。

简介:

hashCode与equals这一对看似作用相同但细品却有着很大的区别,都是值比较而你我却有着不同的衡量标准。不如我们一起约定一个规则,来更好的为程序服务吧

有这么两个结论:

1、equals相等的两个对象他们的hashCode肯定相等,因此equals是绝对可靠的。

2、hashCode相等的两个对象他们的equals不一定相等,因此hashCode不是绝对可靠的。

什么是HashCode(哈希码)

hashCode()的作用就是获取哈希码,它是一个int整数。这个哈希码的作用是确定该对象在散列表中的索引位置。hashCode定义在java.Object中,意味着每个类都有hashCode函数。

1

2

3

4

5

6

7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值