public boolean contains (int key) { if (key == 0) return hasZeroValue; int index = key & mask; if (keyTable[index] != key) { index = hash2(key); if (keyTable[index] != key) { index = hash3(key); if (keyTable[index] != key) return containsKeyStash(key); } } return true; }
public boolean contains (int key) { if (key == 0) return hasZeroValue; int index = key & mask; if (keyTable[index] != key) { index = hash2(key); if (keyTable[index] != key) { index = hash3(key); if (keyTable[index] != key) return containsKeyStash(key); } } return true; }
/** Returns true if the key was removed. */ public boolean remove (int key) { if (key == 0) { if (!hasZeroValue) return false; hasZeroValue = false; size--; return true; } int index = key & mask; if (keyTable[index] == key) { keyTable[index] = EMPTY; size--; return true; } index = hash2(key); if (keyTable[index] == key) { keyTable[index] = EMPTY; size--; return true; } index = hash3(key); if (keyTable[index] == key) { keyTable[index] = EMPTY; size--; return true; } return removeStash(key); }
/** Returns true if the key was removed. */ public boolean remove (int key) { if (key == 0) { if (!hasZeroValue) return false; hasZeroValue = false; size--; return true; } int index = key & mask; if (keyTable[index] == key) { keyTable[index] = EMPTY; size--; return true; } index = hash2(key); if (keyTable[index] == key) { keyTable[index] = EMPTY; size--; return true; } index = hash3(key); if (keyTable[index] == key) { keyTable[index] = EMPTY; size--; return true; } return removeStash(key); }
/** Skips checks for existing keys. */ private void addResize (int key) { if (key == 0) { hasZeroValue = true; return; } // Check for empty buckets. int index1 = key & mask; int key1 = keyTable[index1]; if (key1 == EMPTY) { keyTable[index1] = key; if (size++ >= threshold) resize(capacity << 1); return; } int index2 = hash2(key); int key2 = keyTable[index2]; if (key2 == EMPTY) { keyTable[index2] = key; if (size++ >= threshold) resize(capacity << 1); return; } int index3 = hash3(key); int key3 = keyTable[index3]; if (key3 == EMPTY) { keyTable[index3] = key; if (size++ >= threshold) resize(capacity << 1); return; } push(key, index1, key1, index2, key2, index3, key3); }
/** Skips checks for existing keys. */ private void addResize (int key) { if (key == 0) { hasZeroValue = true; return; } // Check for empty buckets. int index1 = key & mask; int key1 = keyTable[index1]; if (key1 == EMPTY) { keyTable[index1] = key; if (size++ >= threshold) resize(capacity << 1); return; } int index2 = hash2(key); int key2 = keyTable[index2]; if (key2 == EMPTY) { keyTable[index2] = key; if (size++ >= threshold) resize(capacity << 1); return; } int index3 = hash3(key); int key3 = keyTable[index3]; if (key3 == EMPTY) { keyTable[index3] = key; if (size++ >= threshold) resize(capacity << 1); return; } push(key, index1, key1, index2, key2, index3, key3); }
if (key1 == key) return false; int index2 = hash2(key); int key2 = keyTable[index2]; if (key2 == key) return false;
if (key1 == key) return false; int index2 = hash2(key); int key2 = keyTable[index2]; if (key2 == key) return false;
index2 = hash2(evictedKey); key2 = keyTable[index2]; if (key2 == EMPTY) {
index2 = hash2(evictedKey); key2 = keyTable[index2]; if (key2 == EMPTY) {
public boolean contains (int key) { if (key == 0) return hasZeroValue; int index = key & mask; if (keyTable[index] != key) { index = hash2(key); if (keyTable[index] != key) { index = hash3(key); if (keyTable[index] != key) return containsKeyStash(key); } } return true; }
/** Returns true if the key was removed. */ public boolean remove (int key) { if (key == 0) { if (!hasZeroValue) return false; hasZeroValue = false; size--; return true; } int index = key & mask; if (keyTable[index] == key) { keyTable[index] = EMPTY; size--; return true; } index = hash2(key); if (keyTable[index] == key) { keyTable[index] = EMPTY; size--; return true; } index = hash3(key); if (keyTable[index] == key) { keyTable[index] = EMPTY; size--; return true; } return removeStash(key); }
/** Skips checks for existing keys. */ private void addResize (int key) { if (key == 0) { hasZeroValue = true; return; } // Check for empty buckets. int index1 = key & mask; int key1 = keyTable[index1]; if (key1 == EMPTY) { keyTable[index1] = key; if (size++ >= threshold) resize(capacity << 1); return; } int index2 = hash2(key); int key2 = keyTable[index2]; if (key2 == EMPTY) { keyTable[index2] = key; if (size++ >= threshold) resize(capacity << 1); return; } int index3 = hash3(key); int key3 = keyTable[index3]; if (key3 == EMPTY) { keyTable[index3] = key; if (size++ >= threshold) resize(capacity << 1); return; } push(key, index1, key1, index2, key2, index3, key3); }
if (key1 == key) return false; int index2 = hash2(key); int key2 = keyTable[index2]; if (key2 == key) return false;
index2 = hash2(evictedKey); key2 = keyTable[index2]; if (key2 == EMPTY) {