借鉴以下博主的文章,十分感谢!
https://blog.csdn.net/a314774167/article/details/100110216
添加一个key,到我要把它放到哪个槽位,经过一下步骤。
先调用 hashCode() 方法,得到key的哈希码。
然后 异或 (哈希码右移16位) ,其中是哈希码是32位二进制。
由于32位二进制远大于HashMap的长度,所以进行 (n-1)& hash
为什么要右移16位?
举个栗子
异或后得到的32位数字 ,高位仍然保持不变,但是