boolean (final int k) { int pos; if (k == 0) { if (containsNull) { return false; } containsNull = true; } else { int curr; final int[] key = this.key; // The starting point. if (!((curr = key[pos = Hash.mix(k) & mask]) == 0)) { if (curr == k) { return false; } while (!((curr = key[pos = pos + 1 & mask]) == 0)) { if (curr == k) { return false; } } } key[pos] = k; } if (size++ >= maxFill) { rehash(Hash.arraySize(size + 1, f)); } return true; }