可能重复问题:
了解奇怪的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);
}
我并不完全理解这个实现的算法原理。是否有任何解释或资源可以参考?谢谢!
更新
感谢大家提供的答案和资源。实际上,我知道哈希是如何工作的,但不知道为什么这段代码会确保有限数量的碰撞
,正如注释中所说的那样。是否有任何理论验证?