publicHashMap(int initialCapacity,float loadFactor){if(initialCapacity <0)thrownewIllegalArgumentException("Illegal initial capacity: "+
initialCapacity);if(initialCapacity > MAXIMUM_CAPACITY)
initialCapacity = MAXIMUM_CAPACITY;if(loadFactor <=0||Float.isNaN(loadFactor))thrownewIllegalArgumentException("Illegal load factor: "+
loadFactor);this.loadFactor = loadFactor;// 要调整大小的下一个大小值(容量*负载系数)。// 这里给返回的是2的幂次方 7-> 8 9->16this.threshold =tableSizeFor(initialCapacity);}// 返回给定目标容量的两个大小的幂。staticfinalinttableSizeFor(int cap){int n = cap -1;
n |= n >>>1;
n |= n >>>2;
n |= n >>>4;
n |= n >>>8;
n |= n >>>16;return(n <0)?1:(n >= MAXIMUM_CAPACITY)? MAXIMUM_CAPACITY : n +1;}