public boolean containsKey (K key) { int hashCode = System.identityHashCode(key); int index = hashCode & mask; if (key != keyTable[index]) { index = hash2(hashCode); if (key != keyTable[index]) { index = hash3(hashCode); if (key != keyTable[index]) return containsKeyStash(key); } } return true; }
/** @param defaultValue Returned if the key was not associated with a value. */ public int get (K key, int defaultValue) { int hashCode = System.identityHashCode(key); int index = hashCode & mask; if (key != keyTable[index]) { index = hash2(hashCode); if (key != keyTable[index]) { index = hash3(hashCode); if (key != keyTable[index]) return getStash(key, defaultValue); } } return valueTable[index]; }
public boolean containsKey (K key) { int hashCode = System.identityHashCode(key); int index = hashCode & mask; if (key != keyTable[index]) { index = hash2(hashCode); if (key != keyTable[index]) { index = hash3(hashCode); if (key != keyTable[index]) return containsKeyStash(key); } } return true; }
/** @param defaultValue Returned if the key was not associated with a value. */ public int get (K key, int defaultValue) { int hashCode = System.identityHashCode(key); int index = hashCode & mask; if (key != keyTable[index]) { index = hash2(hashCode); if (key != keyTable[index]) { index = hash3(hashCode); if (key != keyTable[index]) return getStash(key, defaultValue); } } return valueTable[index]; }
/** Returns the key's current value and increments the stored value. If the key is not in the map, defaultValue + increment is * put into the map. */ public int getAndIncrement (K key, int defaultValue, int increment) { int hashCode = System.identityHashCode(key); int index = hashCode & mask; if (key != keyTable[index]) { index = hash2(hashCode); if (key != keyTable[index]) { index = hash3(hashCode); if (key != keyTable[index]) return getAndIncrementStash(key, defaultValue, increment); } } int value = valueTable[index]; valueTable[index] = value + increment; return value; }
/** Returns the key's current value and increments the stored value. If the key is not in the map, defaultValue + increment is * put into the map. */ public int getAndIncrement (K key, int defaultValue, int increment) { int hashCode = System.identityHashCode(key); int index = hashCode & mask; if (key != keyTable[index]) { index = hash2(hashCode); if (key != keyTable[index]) { index = hash3(hashCode); if (key != keyTable[index]) return getAndIncrementStash(key, defaultValue, increment); } } int value = valueTable[index]; valueTable[index] = value + increment; return value; }
public int remove (K key, int defaultValue) { int hashCode = System.identityHashCode(key); int index = hashCode & mask; if (key == keyTable[index]) { keyTable[index] = null; int oldValue = valueTable[index]; size--; return oldValue; } index = hash2(hashCode); if (key == keyTable[index]) { keyTable[index] = null; int oldValue = valueTable[index]; size--; return oldValue; } index = hash3(hashCode); if (key == keyTable[index]) { keyTable[index] = null; int oldValue = valueTable[index]; size--; return oldValue; } return removeStash(key, defaultValue); }
public int remove (K key, int defaultValue) { int hashCode = System.identityHashCode(key); int index = hashCode & mask; if (key == keyTable[index]) { keyTable[index] = null; int oldValue = valueTable[index]; size--; return oldValue; } index = hash2(hashCode); if (key == keyTable[index]) { keyTable[index] = null; int oldValue = valueTable[index]; size--; return oldValue; } index = hash3(hashCode); if (key == keyTable[index]) { keyTable[index] = null; int oldValue = valueTable[index]; size--; return oldValue; } return removeStash(key, defaultValue); }
public boolean containsKey (K key) { int hashCode = System.identityHashCode(key); int index = hashCode & mask; if (key != keyTable[index]) { index = hash2(hashCode); if (key != keyTable[index]) { index = hash3(hashCode); if (key != keyTable[index]) { if (isBigTable) { index = hash4(hashCode); if (key != keyTable[index]) return containsKeyStash(key); } else { return containsKeyStash(key); } } } } return true; }
public boolean containsKey (K key) { int hashCode = System.identityHashCode(key); int index = hashCode & mask; if (key != keyTable[index]) { index = hash2(hashCode); if (key != keyTable[index]) { index = hash3(hashCode); if (key != keyTable[index]) { if (isBigTable) { index = hash4(hashCode); if (key != keyTable[index]) return containsKeyStash(key); } else { return containsKeyStash(key); } } } } return true; }
/** @param defaultValue Returned if the key was not associated with a value. */ public int get (K key, int defaultValue) { int hashCode = System.identityHashCode(key); int index = hashCode & mask; if (key != keyTable[index]) { index = hash2(hashCode); if (key != keyTable[index]) { index = hash3(hashCode); if (key != keyTable[index]) { if (isBigTable) { index = hash4(hashCode); if (key != keyTable[index]) return getStash(key, defaultValue); } else { return getStash(key, defaultValue); } } } } return valueTable[index]; }
/** @param defaultValue Returned if the key was not associated with a value. */ public int get (K key, int defaultValue) { int hashCode = System.identityHashCode(key); int index = hashCode & mask; if (key != keyTable[index]) { index = hash2(hashCode); if (key != keyTable[index]) { index = hash3(hashCode); if (key != keyTable[index]) { if (isBigTable) { index = hash4(hashCode); if (key != keyTable[index]) return getStash(key, defaultValue); } else { return getStash(key, defaultValue); } } } } return valueTable[index]; }
index = hash3(hashCode); if (key == keyTable[index]) { keyTable[index] = null;
/** Returns the key's current value and increments the stored value. If the key is not in the map, defaultValue + increment is * put into the map. */ public int getAndIncrement (K key, int defaultValue, int increment) { int hashCode = System.identityHashCode(key); int index = hashCode & mask; if (key != keyTable[index]) { index = hash2(hashCode); if (key != keyTable[index]) { index = hash3(hashCode); if (key != keyTable[index]) { if (isBigTable) { index = hash4(hashCode); if (key != keyTable[index]) return getAndIncrementStash(key, defaultValue, increment); } else { return getAndIncrementStash(key, defaultValue, increment); } } } } int value = valueTable[index]; valueTable[index] = value + increment; return value; }
index = hash3(hashCode); if (key == keyTable[index]) { keyTable[index] = null;
/** Returns the key's current value and increments the stored value. If the key is not in the map, defaultValue + increment is * put into the map. */ public int getAndIncrement (K key, int defaultValue, int increment) { int hashCode = System.identityHashCode(key); int index = hashCode & mask; if (key != keyTable[index]) { index = hash2(hashCode); if (key != keyTable[index]) { index = hash3(hashCode); if (key != keyTable[index]) { if (isBigTable) { index = hash4(hashCode); if (key != keyTable[index]) return getAndIncrementStash(key, defaultValue, increment); } else { return getAndIncrementStash(key, defaultValue, increment); } } } } int value = valueTable[index]; valueTable[index] = value + increment; return value; }
/** Skips checks for existing keys. */ private void putResize (K key, int value) { // Check for empty buckets. int hashCode = System.identityHashCode(key); int index1 = hashCode & mask; K key1 = keyTable[index1]; if (key1 == null) { keyTable[index1] = key; valueTable[index1] = value; if (size++ >= threshold) resize(capacity << 1); return; } int index2 = hash2(hashCode); K key2 = keyTable[index2]; if (key2 == null) { keyTable[index2] = key; valueTable[index2] = value; if (size++ >= threshold) resize(capacity << 1); return; } int index3 = hash3(hashCode); K key3 = keyTable[index3]; if (key3 == null) { keyTable[index3] = key; valueTable[index3] = value; if (size++ >= threshold) resize(capacity << 1); return; } push(key, value, index1, key1, index2, key2, index3, key3); }
/** Skips checks for existing keys. */ private void putResize (K key, int value) { // Check for empty buckets. int hashCode = System.identityHashCode(key); int index1 = hashCode & mask; K key1 = keyTable[index1]; if (key1 == null) { keyTable[index1] = key; valueTable[index1] = value; if (size++ >= threshold) resize(capacity << 1); return; } int index2 = hash2(hashCode); K key2 = keyTable[index2]; if (key2 == null) { keyTable[index2] = key; valueTable[index2] = value; if (size++ >= threshold) resize(capacity << 1); return; } int index3 = hash3(hashCode); K key3 = keyTable[index3]; if (key3 == null) { keyTable[index3] = key; valueTable[index3] = value; if (size++ >= threshold) resize(capacity << 1); return; } push(key, value, index1, key1, index2, key2, index3, key3); }
int index3 = hash3(hashCode); K key3 = keyTable[index3]; if (key3 == null) {
int index3 = hash3(hashCode); K key3 = keyTable[index3]; if (key3 == null) {