void (final long k, final long v) { if (k == 0) { if (containsNullKey) { return; } containsNullKey = true; values[keys.length] = v; } else { int index; long curr; // the starting point if (!((curr = keys[index = (int)k & mask]) == 0)) { if (curr == k) { return; } while (!((curr = keys[index = index + 1 & mask]) == 0)) { if (curr == k) { return; } } } keys[index] = k; values[index] = v; } }