void (final int newN) { final int[] key = this.key; final int mask = newN - 1; // Note that this is used by the hashing macro final int[] newKey = new int[newN + 1]; int i = n, pos; for (int j = realSize(); j-- != 0; ) { while (key[--i] == 0) ; if (!(newKey[pos = Hash.mix(key[i]) & mask] == 0)) { while (!(newKey[pos = pos + 1 & mask] == 0)) ; } newKey[pos] = key[i]; } n = newN; this.mask = mask; maxFill = Hash.maxFill(n, f); this.key = newKey; }