您能否从HashMap constructor解释该代码段,特别是该行


// Find a power of 2 >= initialCapacity
198         int capacity = 1;
199         while (capacity < initialCapacity)
200             capacity <<= 1;

最佳答案

它等效于capacity = capacity << 1;
该操作将容量的位向左移动一个位置,相当于乘以2。

您发布的特定代码找到2的最小幂,大于initialCapacity

因此,例如,如果initialCapacity为27,则循环后capacity将为32(2 ^ 5)。

09-25 17:16
查看更多