hashcode和equals方法的区别与联系
Posted hellorxh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hashcode和equals方法的区别与联系相关的知识,希望对你有一定的参考价值。
equals:比较的是两个对象的内存地址值
hashCode:比较的是两个对象在hash表中的位置
hashCode的由来:对象的内存地址通过hash函数算法得到hashcode
1.equal()相等的两个对象他们的hashCode()肯定相等,也就是用equal()对比是绝对可靠的。
2.hashCode()相等的两个对象他们的equal()不一定相等,也就是hashCode()不是绝对可靠的。
HashCode的存在主要是为了查找的快捷性
每当需要对比两个对象是否相等的时候,首先用hashCode()去对比,如果hashCode()不一样,则表示这两个对象肯定不相等(也就不必再用equal()去对比了),如果hashCode()相同,此时再对比他们的equals(),如果equals()也相同,则表示这两个对象是真的相同了,这样既能大大提高了效率也保证了对比的绝对正确性!
以上是关于hashcode和equals方法的区别与联系的主要内容,如果未能解决你的问题,请参考以下文章