为什么容量必须是倍数或2?为什么在 indexFor 函数中使用“&”?为什么要重新计算哈希函数中的哈希而不是直接使用密钥的哈希码?
我认为此实现与“算法简介”中的描述之间存在一些重要差异。
“>>>”是什么意思?
static int hash(int h) {
// This function ensures that hashCodes that differ only by
// constant multiples at each bit position have a bounded
// number of collisions (approximately 8 at default load factor).
h ^= (h >>> 20) ^ (h >>> 12);
return h ^ (h >>> 7) ^ (h >>> 4);
}
谁能给我一些指导?如果有人可以解释哈希算法,我将不胜感激。非常感谢!