可能重复:
理解奇怪的 Java 哈希函数
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);
}
我不太明白这个实现的算法原理。我可以参考任何解释或任何资源?谢谢 !
更新
感谢所有人的答案和资源。实际上,我了解哈希的工作原理,但不知道为什么此代码将确保a bounded number of collisions
,如评论所述。有没有理论上的验证?