大佬教程收集整理的这篇文章主要介绍了集合的hashCode方法的最佳实现,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
最好的实现?这是一个难题,因为它取决于使用模式。
在几乎所有情况下,Josh Bloch的 有效Java项目8(第二版)中都提出了合理的良好实现。最好的办法是在那里查找,因为作者在那里解释了为什么这种方法很好。
简短版
1. 创建一个int result
并分配一个非零值。
对于在方法中测试的每个字段 f,通过以下equals()方式计算哈希码c:
如果字段f为Boolean:计算(f ? 0 : 1)
;
byte
,char,short或int:计算(int)f
;long
:计算(int)(f ^ (f >>> 32))
;float
:计算float.floatToIntBits(f)
;double
:计算Double.doubletoLongBits(f)
和处理返回值,就像每个长值一样;c
与result
:result = 37 * result + c
result
我们如何确定hashCode()
用于集合的方法的最佳实现(假设equals方法已被正确覆盖)?
以上是大佬教程为你收集整理的集合的hashCode方法的最佳实现全部内容,希望文章能够帮你解决集合的hashCode方法的最佳实现所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。