首页 > 其他 > 详细

为什么重写equals的时候,建议同时重写hashcode方法

时间:2021-02-09 18:12:57      阅读:21      评论:0      收藏:0      [点我收藏+]

为什么重写equals的时候,建议同时重写hashcode方法?

1.什么是hashcode
hashcode是运用hash算法,就是把任意长度的输入,通过散列算法变换成固定长度的输出,这个输出就是hashcode。
2.hashcode在java中的运用
在java set集合中,当插入一个对象的时候,会判断集合中是否存在相同的对象。相同的判断依据是根据hashcode+equals方法,
当输入对象的hashcode在集合中有相同的hashcode时,会到对应的散列存储中,比较equals,不同则插入,相同则放弃
当输入对象的hashcode在集合中没有相同的hashcode时,就可以直接插入set结合
3.为什么重写equals的时候,建议同时重写hashcode方法
重写hashcode方法可以更加有效率的判断对象是否相同,在对象的set集合中,插入操作也会更有效率

 

使用同一hash算法的时候:

两个对象相同,hashcode必定相同
hashcode相同,两个对象不一定相同(hash碰撞)

 

为什么重写equals的时候,建议同时重写hashcode方法

原文:https://www.cnblogs.com/BigWrite/p/14393010.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!