HashMap学习笔记3(HashMap的hash以及putVal方法解析)
HashMap的hash算法:key的hash值高16位不变,低16位与高16位异或作为key的最终hash值。
putVal方法中判断hash碰撞:
下标为 :(n-1) & hash
真正进行运算hash碰撞的关键只于table的大小length有关;
table大小为2的n次保证了n-1的二级制一定是111…这样保证和hash进行异或运算和tablesize相关
默认的table大小初始为2^4 ,那么实际参与计算的hash值为最后四位
https://blog.csdn.net/fan2012huan/article/details/51097331: 参考博客