为什么重写equals方法需要重写hashcode

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:49   1344   0

1、首先我们来确认一下对象的equals的判断逻辑是内存地址相等即为对象相等;

2、其次我们来看下hash的取值方式,以hashmap为例,实际的hash值是经过对象的hashcode与16(也可能是32或者64)与运算得到的。

3、此时假设我们写了一个对象Studend,有一个st_id作为学生的学号来作为唯一识别码,此时我们在不同的对象地方创建了同一个学生,学号相同,所以他是同一个对象,而此时我们并未重写hashcode,导致了他的hashcode不一致,所以会存在同一个对象有两个hashcode的情况。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP