摘要: 我们都知道在put的时候,元素的key值会经过一个hash扰动,让高16位参与运算 但是在resize的时候,发现路由寻址到新数组的时候没有经过hash扰动 继续看源码,原来在putVal方法的时候,已经把扰动过后的hash赋值给了Node对象的hash属性,所以resize的时候直接调用就可以了 阅读全文
posted @ 2021-01-04 23:03 人菜话多帅瓜皮 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 原因:当数组的长度很短时,只有低位数的hashcode值能参与运算。而让高16位参与运算可以更好的均匀散列,减少碰撞,进一步降低hash冲突的几率。并且使得高16位和低16位的信息都被保留了。 而在这里采用异或运算而不采用& ,| 运算的原因是 异或运算能更好的保留各部分的特征,如果采用&运算计算出 阅读全文
posted @ 2021-01-04 05:15 人菜话多帅瓜皮 阅读(4511) 评论(0) 推荐(1) 编辑