Java HashMap 实现中的 hash() 方法的诀窍是什么?
可能的副本:
理解奇怪的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