您能否从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)。