为什么HashMap在索引上插入新的Node:
标签[(n – 1)&哈希]
其中hash = key.hashCode()^ key.hashCode()>>> 16
并且n =节点< K,V>的阵列的tab.length.
为什么HashMap没有像这样放置Node:tab [hash]?它只是另一个散列函数,比如在大多数hashCode()方法中乘以31吗?
在此先感谢您的解释!
因为哈希可能超出范围.
“规范解决方案”是使用数组长度获取散列的(正)模数,此代码使用数组具有2的幂长度来替换昂贵的模数的事实(模数为a使用廉价的按位AND,可以很好地优化常量.
原文链接:https://www.f2er.com/java/127397.html