java – 为什么HashMap在索引(n-1)和hash上插入新的Node?
发布时间:2020-12-14 23:43:39 所属栏目:Java 来源:网络整理
导读:为什么HashMap在索引上插入新的Node: 标签[(n – 1)哈希] 其中hash = key.hashCode()^ key.hashCode() 16 并且n =节点 K,V的阵列的tab.length. 为什么HashMap没有像这样放置Node:tab [hash]?它只是另一个散列函数,比如在大多数hashCode()方法中乘以31吗?
为什么HashMap在索引上插入新的Node:
标签[(n – 1)&哈希] 其中hash = key.hashCode()^ key.hashCode()>>> 16 为什么HashMap没有像这样放置Node:tab [hash]?它只是另一个散列函数,比如在大多数hashCode()方法中乘以31吗? 解决方法
因为哈希可能超出范围.
“规范解决方案”是使用数组长度获取散列的(正)模数,此代码使用数组具有2的幂长度来替换昂贵的模数的事实(模数为a使用廉价的按位AND,可以很好地优化常量. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |