(int newSize)
| 497 | } |
| 498 | |
| 499 | private void resize(int newSize) { // [1,2,4,8,...,0x4000_0000] |
| 500 | threshold = (int)(newSize * loadFactor); |
| 501 | final int m = newSize - 1; |
| 502 | mask = m; |
| 503 | shift = Long.numberOfLeadingZeros(m); |
| 504 | final int[] kt = new int[newSize]; |
| 505 | @SuppressWarnings("unchecked") final V[] vt = (V[])new Object[newSize]; |
| 506 | if (size != 0) { |
| 507 | final int[] oldKt = keyTable; |
| 508 | final V[] oldVt = valueTable; |
| 509 | for (int j = 0, n = oldKt.length; j < n; j++) { |
| 510 | final int k = oldKt[j]; |
| 511 | if (k != 0) { |
| 512 | for (int i = hash(k); ; i = (i + 1) & m) { |
| 513 | if (kt[i] == 0) { |
| 514 | kt[i] = k; |
| 515 | vt[i] = oldVt[j]; |
| 516 | break; |
| 517 | } |
| 518 | } |
| 519 | } |
| 520 | } |
| 521 | } |
| 522 | keyTable = kt; |
| 523 | valueTable = vt; |
| 524 | } |
| 525 | |
| 526 | public void foreachKey(@NotNull IntConsumer consumer) { |
| 527 | if (hasZeroValue) |
no test coverage detected