为什么HashMap的大小都是2的幂次?

329 阅读1分钟

HashMap的容量

HashMap初始化的时候,若指定初始capacity,则会根据该容量设定最小的大于这个值的2次幂数值作为容量

缘由

每次根据hash值定位数组桶的位置的时候,都会对将数组的容量(n-1) & hash 来取模,这样因为n都是2的幂次,,这样n-1后位都是1,这样能最大化利用hash值,减少冲突碰撞率。