码迷,mamicode.com
首页 > 编程语言 > 详细

3.Java hashCode() equals总结

时间:2019-01-15 00:46:56      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:存储   内容   依据   重复   推出   存在   方法   htable   通过   

1.hashCode存在的意义在于查找的快捷性,如Hashtable,HashMap等。hashCode是用来在散列存储结构中确定对象的存储地址的。

2.两个对象如果相同,那么两个对象的hash‘Code一定要相同。

3.如果对象的equals方法被重写,那么对象的hashCode也重写,并且产生hashCode使用的对象,一定要和equals方法中使用的一致。

4.两个对象的hashCode相同,并不一定表示两个对象就相同,只能够说明这两个对象在散列存储结构中,如Hashtable,他们存放在一起。

总结:hashCode是用来查找使用的,而equals是用来比较两个对象是否相等。

关系:

   1.equals()相等的两个对象,hashCode()一定相等;

   2.equals()不相等的两个对象,却并不能证明它们的hashCode()不相等

   3.hashCode()不等,一定能推出equals()也不等;hashCode()相等,equals()可能相            等,也可能不等。

判断两个类是否相等,用equals。那么先用hashCode方法,来判断其hashCode是否相等,如果不等,那么两个类一定不等,如果相等,则两个类可能相等,也可能不等,这个时候就需要调用equals再去进行判断。这样做的好处就是提高了效率。因此在hashCode和equals方法中,做判断的内容不能相同,否则就失去了该项意义。

hashCode是一个标识,到散列表中去找该对象的一个标识,如果相同的hashCode的类放于相同的散列表中,然后在通过equals进一步选出散列表中对应的对象。因此相同标识下的类不能重复,这也是hashMap,hashSet 等存储数据的依据。

 

3.Java hashCode() equals总结

标签:存储   内容   依据   重复   推出   存在   方法   htable   通过   

原文地址:https://www.cnblogs.com/pfzhu/p/10269551.html

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