MCPcopy Create free account
hub / github.com/e2wugui/zeze / resize

Method resize

ZezeJava/ZezeJava/src/main/java/Zeze/Util/IntHashMap.java:499–524  ·  view source on GitHub ↗
(int newSize)

Source from the content-addressed store, hash-verified

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)

Callers 7

putMethod · 0.95
putIfAbsentMethod · 0.95
computeIfAbsentMethod · 0.95
computeMethod · 0.95
clearMethod · 0.95
shrinkMethod · 0.95
ensureCapacityMethod · 0.95

Calls 1

hashMethod · 0.95

Tested by

no test coverage detected