Java的hashcode与equals方法

发布时间:2019-11-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java的hashcode与equals方法脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Java基础系列

Java基础的东东,hashcode和equals方法的区别。

hashcode

hashcode()方法提供了对象的hashCode值,是一个native方法,返回的默认值与System.identITyHashCode(obj)一致。

通常这个值是对象头部的一部分二进制位组成的数字,具有一定的标识对象的意义存在,但绝不定于地址。

作用是:用一个数字来标识对象。比如在HashMap、HashSet等类似的集合类中,如果用某个对象本身作为Key,即要基于这个对象实现Hash的写入和查找,那么对象本身如何实现这个呢?就是基于hashcode这样一个数字来完成的,只有数字才能完成计算和对比操作。

hashcode是否唯一

hashcode只能说是标识对象,在hash算法中可以将对象相对离散开,这样就可以在查找数据的时候根据这个key快速缩小数据的范围,但hashcode不一定是唯一的,所以hash算法中定位到具体的链表后,需要循环链表,然后通过equals方法来对比Key是否是一样的

equals与hashcode的关系

equals相等两个对象,则hashcode一定要相等。但是hashcode相等的两个对象不一定equals相等。

小结

hashcode是为了算法快速定位数据而存在的,而equals是为了对比真实值而存在的。

脚本宝典总结

以上是脚本宝典为你收集整理的Java的hashcode与equals方法全部内容,希望文章能够帮你解决Java的hashcode与equals方法所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。