Java - HashMap扩容为什么选用2倍 2021-01-20 11:56:14 浏览数 (1) 做除余的时候2的倍数可以直接使用&进行快速计算 例如: 19可以写成19&(16-1),位运算更高效 扩容的时候只移动大约一半的数据,并且不会造成扩容之后碰撞更加严重的情况 例如: hash值为4和8的值存放在size为4的数组中,则两个元素都存放在0下标的数据中,当以2倍扩容时,size变为8,8依然存放在0下标位置上,而4移动到下标为4的位置上,这样不仅达到了扩容的效果,还减少了hash碰撞,一举两得。 hash size 数组 0 人点赞 上一篇:分享雷军22年前编写的代码