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

hashcode和equals方法的区别与联系

时间:2019-05-15 19:22:24      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:nbsp   通过   对象   shc   hash表   equal   效率   由来   code   

equals:比较的是两个对象的内存地址值

hashCode:比较的是两个对象在hash表中的位置

hashCode的由来:对象的内存地址通过hash函数算法得到hashcode

         1.equal()相等的两个对象他们的hashCode()肯定相等,也就是用equal()对比是绝对可靠的。

         2.hashCode()相等的两个对象他们的equal()不一定相等,也就是hashCode()不是绝对可靠的。

 

HashCode的存在主要是为了查找的快捷性

  每当需要对比两个对象是否相等的时候,首先用hashCode()去对比,如果hashCode()不一样,则表示这两个对象肯定不相等(也就不必再用equal()去对比了),如果hashCode()相同,此时再对比他们的equals(),如果equals()也相同,则表示这两个对象是真的相同了,这样既能大大提高了效率也保证了对比的绝对正确性!

hashcode和equals方法的区别与联系

标签:nbsp   通过   对象   shc   hash表   equal   效率   由来   code   

原文地址:https://www.cnblogs.com/Hellorxh/p/10871454.html

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