@Override Leaf<K, V> remove(Object key, int hash) { int slot = -1; for (int i = 0; i < keys.length; i++) { if (key.equals(keys[i])) { slot = i; break; } } if (slot < 0) { return this; } final K[] keys2 = removeArrayElement(keys, slot); final V[] values2 = removeArrayElement(values, slot); return new Leaf<>(keys2, values2); } }
@Override Leaf<K, V> put(K key, int hash, int hashBits, V value, MutableValueInt newValue) { assert hashBits <= 0 : hashBits; int slot = -1; for (int i = 0; i < keys.length; i++) { if (key.equals(keys[i])) { slot = i; break; } } final K[] keys2; final V[] values2; if (slot < 0) { keys2 = appendElement(keys, key); values2 = appendElement(values, value); newValue.value = 1; } else { keys2 = replace(keys, slot, key); values2 = replace(values, slot, value); } return new Leaf<>(keys2, values2); }
@Override Leaf<K, V> remove(Object key, int hash) { int slot = -1; for (int i = 0; i < keys.length; i++) { if (key.equals(keys[i])) { slot = i; break; } } if (slot < 0) { return this; } final K[] keys2 = removeArrayElement(keys, slot); final V[] values2 = removeArrayElement(values, slot); return new Leaf<>(keys2, values2); } }
@Override Leaf<K, V> put(K key, int hash, int hashBits, V value, MutableValueInt newValue) { assert hashBits <= 0 : hashBits; int slot = -1; for (int i = 0; i < keys.length; i++) { if (key.equals(keys[i])) { slot = i; break; } } final K[] keys2; final V[] values2; if (slot < 0) { keys2 = appendElement(keys, key); values2 = appendElement(values, value); newValue.value = 1; } else { keys2 = replace(keys, slot, key); values2 = replace(values, slot, value); } return new Leaf<>(keys2, values2); }
@Override Leaf<K, V> put(K key, int hash, int hashBits, V value, MutableValueInt newValue) { assert hashBits <= 0 : hashBits; int slot = -1; for (int i = 0; i < keys.length; i++) { if (key.equals(keys[i])) { slot = i; break; } } final K[] keys2; final V[] values2; if (slot < 0) { keys2 = appendElement(keys, key); values2 = appendElement(values, value); newValue.value = 1; } else { keys2 = replace(keys, slot, key); values2 = replace(values, slot, value); } return new Leaf<>(keys2, values2); }
@Override Leaf<K, V> put(K key, int hash, int hashBits, V value, MutableValueInt newValue) { assert hashBits <= 0 : hashBits; int slot = -1; for (int i = 0; i < keys.length; i++) { if (key.equals(keys[i])) { slot = i; break; } } final K[] keys2; final V[] values2; if (slot < 0) { keys2 = appendElement(keys, key); values2 = appendElement(values, value); newValue.value = 1; } else { keys2 = replace(keys, slot, key); values2 = replace(values, slot, value); } return new Leaf<>(keys2, values2); }
@Override Leaf<K, V> put(K key, int hash, int hashBits, V value, MutableValueInt newValue) { assert hashBits <= 0 : hashBits; int slot = -1; for (int i = 0; i < keys.length; i++) { if (key.equals(keys[i])) { slot = i; break; } } final K[] keys2; final V[] values2; if (slot < 0) { keys2 = appendElement(keys, key); values2 = appendElement(values, value); newValue.value = 1; } else { keys2 = replace(keys, slot, key); values2 = replace(values, slot, value); } return new Leaf<>(keys2, values2); }
@Override Leaf<K, V> remove(Object key, int hash) { int slot = -1; for (int i = 0; i < keys.length; i++) { if (key.equals(keys[i])) { slot = i; break; } } if (slot < 0) { return this; } final K[] keys2 = removeArrayElement(keys, slot); final V[] values2 = removeArrayElement(values, slot); return new Leaf<>(keys2, values2); } }
@Override Leaf<K, V> remove(Object key, int hash) { int slot = -1; for (int i = 0; i < keys.length; i++) { if (key.equals(keys[i])) { slot = i; break; } } if (slot < 0) { return this; } final K[] keys2 = removeArrayElement(keys, slot); final V[] values2 = removeArrayElement(values, slot); return new Leaf<>(keys2, values2); } }
@Override Leaf<K, V> remove(Object key, int hash) { int slot = -1; for (int i = 0; i < keys.length; i++) { if (key.equals(keys[i])) { slot = i; break; } } if (slot < 0) { return this; } final K[] keys2 = removeArrayElement(keys, slot); final V[] values2 = removeArrayElement(values, slot); return new Leaf<>(keys2, values2); } }
private Node<K, V> newSubNode(int hashBits) { if (hashBits <= 0) { return new Leaf<K, V>(); } else { return new InnerNode<K, V>(); } }
private Node<K, V> newSubNode(int hashBits) { if (hashBits <= 0) { return new Leaf<K, V>(); } else { return new InnerNode<K, V>(); } }
private Node<K, V> newSubNode(int hashBits) { if (hashBits <= 0) { return new Leaf<K, V>(); } else { return new InnerNode<K, V>(); } }
private Node<K, V> newSubNode(int hashBits) { if (hashBits <= 0) { return new Leaf<K, V>(); } else { return new InnerNode<K, V>(); } }
private Node<K, V> newSubNode(int hashBits) { if (hashBits <= 0) { return new Leaf<K, V>(); } else { return new InnerNode<K, V>(); } }