码迷,mamicode.com
首页 > 其他好文 > 详细

hashcode()与equals()

时间:2021-03-04 13:10:37      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:ble   通过   dao   ext   ofo   优点   为什么   hid   另一个   

hashcode()与equals()

hashcode优点

  1. hashcode比equals效率高,但是相对来说准确性低,因为不同的对象生成的hashcode也可能是相同(生成hash值得公式可能存在的问题)
  2. 通过hashCode可以很快的查到小内存块

hashcode()与equals()区别

  1. equals()相等的两个对象他们的hashCode()肯定相等
  2. hashCode()相等的两个对象他们的equals()不一定相等()
  3. 为什么equals()相等,hashCode就一定要相等,而hashCode相等,却不要求equals相等?

 因为是按照hashCode来访问小内存块,所以hashCode必须相等。

HashMap获取一个对象是比较key的hashCode相等和equals为true。

之所以hashCode相等,却可以equal不等,就比如ObjectA和ObjectB他们都有属性name,那么hashCode都以name计算,所以hashCode一样,但是两个对象属于不同类型,所以equals为false。

  1. 同一个类new两个对象,它的hashcode是不一样的,返回的是当前对象的地址

 

需要重写生成hashcode的方法,重写方法https://blog.csdn.net/zzg1229059735/article/details/51498310
5.为什么重写equals就要重写hashcode,因为当把两个比较数中的其中一个作为key放入hashset、hashTable、hashMap中,然后用另一个值去查找,那么是查找不到的(为何要重写equals:https://zhidao.baidu.com/question/326597100.html

hashcode()与equals()

标签:ble   通过   dao   ext   ofo   优点   为什么   hid   另一个   

原文地址:https://www.cnblogs.com/xwx20160804/p/11719656.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!