背景:由于HashMap提供了配置初始化容量的构造函数,为了确保容量始终为2的N次方,需要计算>=调用方传入容量的最小的2的整数次方,我们记作n。函数tableSizeFor(int)实现了这一功能:
static final int tableSizeFor(int cap) {
int n = -1 >>> Integer.numberOfLeadingZeros(cap - 1);
return n < 0 ? 1 : (n >= 1073741824
背景:由于HashMap提供了配置初始化容量的构造函数,为了确保容量始终为2的N次方,需要计算>=调用方传入容量的最小的2的整数次方,我们记作n。函数tableSizeFor(int)实现了这一功能:
static final int tableSizeFor(int cap) {
int n = -1 >>> Integer.numberOfLeadingZeros(cap - 1);
return n < 0 ? 1 : (n >= 1073741824