public boolean contains (T key) { int hashCode = key.hashCode(); int index = hashCode & mask; if (!key.equals(keyTable[index])) { index = hash2(hashCode); if (!key.equals(keyTable[index])) { index = hash3(hashCode); if (!key.equals(keyTable[index])) return getKeyStash(key) != null; } } return true; }
public boolean contains (T key) { int hashCode = key.hashCode(); int index = hashCode & mask; if (!key.equals(keyTable[index])) { index = hash2(hashCode); if (!key.equals(keyTable[index])) { index = hash3(hashCode); if (!key.equals(keyTable[index])) return getKeyStash(key) != null; } } return true; }
/** @return May be null. */ public T get (T key) { int hashCode = key.hashCode(); int index = hashCode & mask; T found = keyTable[index]; if (!key.equals(found)) { index = hash2(hashCode); found = keyTable[index]; if (!key.equals(found)) { index = hash3(hashCode); found = keyTable[index]; if (!key.equals(found)) return getKeyStash(key); } } return found; }
/** @return May be null. */ public T get (T key) { int hashCode = key.hashCode(); int index = hashCode & mask; T found = keyTable[index]; if (!key.equals(found)) { index = hash2(hashCode); found = keyTable[index]; if (!key.equals(found)) { index = hash3(hashCode); found = keyTable[index]; if (!key.equals(found)) return getKeyStash(key); } } return found; }
/** Returns true if the key was removed. */ public boolean remove (T key) { int hashCode = key.hashCode(); int index = hashCode & mask; if (key.equals(keyTable[index])) { keyTable[index] = null; size--; return true; } index = hash2(hashCode); if (key.equals(keyTable[index])) { keyTable[index] = null; size--; return true; } index = hash3(hashCode); if (key.equals(keyTable[index])) { keyTable[index] = null; size--; return true; } return removeStash(key); }
/** Returns true if the key was removed. */ public boolean remove (T key) { int hashCode = key.hashCode(); int index = hashCode & mask; if (key.equals(keyTable[index])) { keyTable[index] = null; size--; return true; } index = hash2(hashCode); if (key.equals(keyTable[index])) { keyTable[index] = null; size--; return true; } index = hash3(hashCode); if (key.equals(keyTable[index])) { keyTable[index] = null; size--; return true; } return removeStash(key); }
if (key.equals(key2)) return false; int index3 = hash3(hashCode); T key3 = keyTable[index3]; if (key.equals(key3)) return false;
if (key.equals(key2)) return false; int index3 = hash3(hashCode); T key3 = keyTable[index3]; if (key.equals(key3)) return false;
/** Skips checks for existing keys. */ private void addResize (T key) { // Check for empty buckets. int hashCode = key.hashCode(); int index1 = hashCode & mask; T key1 = keyTable[index1]; if (key1 == null) { keyTable[index1] = key; if (size++ >= threshold) resize(capacity << 1); return; } int index2 = hash2(hashCode); T key2 = keyTable[index2]; if (key2 == null) { keyTable[index2] = key; if (size++ >= threshold) resize(capacity << 1); return; } int index3 = hash3(hashCode); T key3 = keyTable[index3]; if (key3 == null) { 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 (T key) { // Check for empty buckets. int hashCode = key.hashCode(); int index1 = hashCode & mask; T key1 = keyTable[index1]; if (key1 == null) { keyTable[index1] = key; if (size++ >= threshold) resize(capacity << 1); return; } int index2 = hash2(hashCode); T key2 = keyTable[index2]; if (key2 == null) { keyTable[index2] = key; if (size++ >= threshold) resize(capacity << 1); return; } int index3 = hash3(hashCode); T key3 = keyTable[index3]; if (key3 == null) { keyTable[index3] = key; if (size++ >= threshold) resize(capacity << 1); return; } push(key, index1, key1, index2, key2, index3, key3); }
index3 = hash3(hashCode); key3 = keyTable[index3]; if (key3 == null) {
index3 = hash3(hashCode); key3 = keyTable[index3]; if (key3 == null) {
public boolean contains (T key) { int hashCode = key.hashCode(); int index = hashCode & mask; if (!key.equals(keyTable[index])) { index = hash2(hashCode); if (!key.equals(keyTable[index])) { index = hash3(hashCode); if (!key.equals(keyTable[index])) return getKeyStash(key) != null; } } return true; }
/** @return May be null. */ public T get (T key) { int hashCode = key.hashCode(); int index = hashCode & mask; T found = keyTable[index]; if (!key.equals(found)) { index = hash2(hashCode); found = keyTable[index]; if (!key.equals(found)) { index = hash3(hashCode); found = keyTable[index]; if (!key.equals(found)) return getKeyStash(key); } } return found; }
/** Returns true if the key was removed. */ public boolean remove (T key) { int hashCode = key.hashCode(); int index = hashCode & mask; if (key.equals(keyTable[index])) { keyTable[index] = null; size--; return true; } index = hash2(hashCode); if (key.equals(keyTable[index])) { keyTable[index] = null; size--; return true; } index = hash3(hashCode); if (key.equals(keyTable[index])) { keyTable[index] = null; size--; return true; } return removeStash(key); }
if (key.equals(key2)) return false; int index3 = hash3(hashCode); T key3 = keyTable[index3]; if (key.equals(key3)) return false;
/** Skips checks for existing keys. */ private void addResize (T key) { // Check for empty buckets. int hashCode = key.hashCode(); int index1 = hashCode & mask; T key1 = keyTable[index1]; if (key1 == null) { keyTable[index1] = key; if (size++ >= threshold) resize(capacity << 1); return; } int index2 = hash2(hashCode); T key2 = keyTable[index2]; if (key2 == null) { keyTable[index2] = key; if (size++ >= threshold) resize(capacity << 1); return; } int index3 = hash3(hashCode); T key3 = keyTable[index3]; if (key3 == null) { keyTable[index3] = key; if (size++ >= threshold) resize(capacity << 1); return; } push(key, index1, key1, index2, key2, index3, key3); }
index3 = hash3(hashCode); key3 = keyTable[index3]; if (key3 == null) {