内容来自《收割Offer:互联网大厂面经》
hash 值的计算过程:(key == null) ? 0 : (h = key.hashCode()) ^ (h>>> 16)。
解释如下:
(1)计算 hash 值,int h = key.hashCode()。
(2)哈希值无符号右移16位与原哈希值做异或h ^(h >>> 16)处理。
把高位与低位进行混合运算,提高低位的随机性,降低碰撞概率。