JDK1.8中:定位当前插入节点的桶的位置:
1. 取得key的hash值,不是简单的取key的hashCode:
1.1 令
h = key.hashCode()
;
1.2 令
hash = h ^ (h >>> 16)
;其实是h高低位异或取得hash,是为了增加随机性;
2. 根据hash值,得到桶的位置:
i =(n - 1)& hash
;本质是用hash对n取模,n是桶数组的长度;