java – 为什么HashMap在索引(n-1)和hash上插入新的Node?

前端之家收集整理的这篇文章主要介绍了java – 为什么HashMap在索引(n-1)和hash上插入新的Node?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么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

猜你在找的Java相关文章