首页 > 其他 > 详细

hashcode与equals

时间:2020-03-08 11:04:37      阅读:49      评论:0      收藏:0      [点我收藏+]

hashcode():object中的方法,实现:根据实例地址来求解的

equals():object中的方法,在object中与==是一致的,比较地址,在其他的类中重写equals()后是根据对象的内容来比较的,例如:String Integer

 

两者的关系:

实际上两者没有直接的任何关系,但两者的实现要满足这样的逻辑:hash值不相等的两个实例一定不相等,hash值相等的两个实例不一定相等

在以散列表为基础的结构中会使用到这两个函数,例如:hashmap  hashset,而其他情况是用不到hashcode()方法的

在hashmap中put()方法中存在这样的逻辑:若hash值不相等则将将值放入hash表中,若hash值相等则再进行equals()的比较

 

重写equals是也要重写hashcode的原因:

上面已经说到以散列表为基本的结构中存在的逻辑,这样处理有什么好处:

1、提高效率,不需要循环整个结构进行比较

hashcode与equals

原文:https://www.cnblogs.com/zhaolei1996/p/12441181.html

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