标签: bitwise-operators hashcode
在Scala中最新的HashMap实现中,键o的哈希码计算实现为:
val h = o.## h ^ (h >>> 16)
此特定实施背后的目标是什么?我的意思是这将如何改善哈希码。
编辑:我也在代码中找到此注释:
//通过将高16位与低16位异或来改善哈希,以防万一熵偏向 //高价值位。我们仅使用最低位来确定哈希桶。这是相同的改进 //如java.util.HashMap中的算法。
//通过将高16位与低16位异或来改善哈希,以防万一熵偏向
//高价值位。我们仅使用最低位来确定哈希桶。这是相同的改进
//如java.util.HashMap中的算法。