XORing改善哈希

时间:2019-01-17 10:49:12

标签: bitwise-operators hashcode

在Scala中最新的HashMap实现中,键o的哈希码计算实现为:

val h = o.##
h ^ (h >>> 16)

此特定实施背后的目标是什么?我的意思是这将如何改善哈希码。

编辑:我也在代码中找到此注释:

  

//通过将高16位与低16位异或来改善哈希,以防万一熵偏向

     

//高价值位。我们仅使用最低位来确定哈希桶。这是相同的改进

     

//如java.util.HashMap中的算法。

0 个答案:

没有答案