天天看點

HashMap的容量為什麼是2的n次幂

  • 總結:為了減少哈希沖突
  • 為什麼能減少哈希沖突,因為容量的大小跟确定元素在桶中的位置有關,
  • 元素在桶中的位置由(n-1)&hash計算得來
  • 當容量大小不夠大時,元素的位置主要用的hash低位的資訊,那麼結合&操作,&的另一個數最好低位全是1,而2的整數次幂-1的低位全是1,這樣&才有意義;否則結果就肯定是0那麼&就沒有意義,沖突機率增加