@Override public char getChar(Object key) { int index = index(key); if (index >= 0) { // key is present return values[index]; } else { // key is absent return defaultValue(); } }
@Override public void clear() { doClear(); }
@Override void removeAt(int index) { incrementModCount(); super.removeAt(index); postRemoveHook(); }
@Override public char putIfAbsent(K key, char value) { int index = insert(key, value); if (index < 0) { // key was absent return defaultValue(); } else { // key is present return values[index]; } }
int firstRemoved; if (cur != REMOVED) { if (noRemoved()) { int bIndex = index, fIndex = index, step = 1; while (true) { char newValue = (char) (defaultValue() + value); incrementModCount(); keys[firstRemoved] = null; vals[firstRemoved] = newValue; postRemovedSlotInsertHook(); return newValue; char newValue = (char) (defaultValue() + value); incrementModCount(); keys[index] = null; vals[index] = newValue; postFreeSlotInsertHook(); return newValue;
Object cur; keyPresent: if ((cur = keys[index = SeparateKVObjKeyMixing.mix(keyHashCode(key)) % (capacity = keys.length)]) != key) { keyAbsentFreeSlot: if (cur != FREE) { int firstRemoved; if (cur != REMOVED) { if (keyEquals(key, (K) cur)) { break keyPresent; } else { if (noRemoved()) { int bIndex = index, fIndex = index, step = 1; while (true) { else if (keyEquals(key, (K) cur)) { index = bIndex; break keyPresent; else if (keyEquals(key, (K) cur)) { index = fIndex; break keyPresent; if (keyEquals(key, (K) cur)) { index = bIndex; break keyPresent; if (keyEquals(key, (K) cur)) { index = fIndex; break keyPresent;
int capacity, index; Object cur; if ((cur = keys[index = SeparateKVObjKeyMixing.mix(keyHashCode(key)) % (capacity = keys.length)]) == key) { int firstRemoved; if (cur != REMOVED) { if (keyEquals(key, (K) cur)) { if (noRemoved()) { int bIndex = index, fIndex = index, step = 1; while (true) { else if (keyEquals(key, (K) cur)) { else if (keyEquals(key, (K) cur)) { if (keyEquals(key, (K) cur)) { if (keyEquals(key, (K) cur)) { incrementModCount(); keys[firstRemoved] = key; vals[firstRemoved] = value; postRemovedSlotInsertHook(); return value; } else { incrementModCount(); keys[index] = key;
Object cur; keyPresent: if ((cur = keys[index = SeparateKVObjKeyMixing.mix(keyHashCode(key)) % (capacity = keys.length)]) != key) { keyAbsentFreeSlot: if (cur != FREE) { int firstRemoved; if (cur != REMOVED) { if (keyEquals(key, (K) cur)) { break keyPresent; } else { if (noRemoved()) { int bIndex = index, fIndex = index, step = 1; while (true) { else if (keyEquals(key, (K) cur)) { index = bIndex; break keyPresent; else if (keyEquals(key, (K) cur)) { index = fIndex; break keyPresent; if (keyEquals(key, (K) cur)) { index = bIndex; break keyPresent; if (keyEquals(key, (K) cur)) { index = fIndex; break keyPresent;
Object cur; keyPresent: if ((cur = keys[index = SeparateKVObjKeyMixing.mix(keyHashCode(key)) % (capacity = keys.length)]) != key) { keyAbsentFreeSlot: if (cur != FREE) { int firstRemoved; if (cur != REMOVED) { if (keyEquals(key, (K) cur)) { break keyPresent; } else { if (noRemoved()) { int bIndex = index, fIndex = index, step = 1; while (true) { else if (keyEquals(key, (K) cur)) { index = bIndex; break keyPresent; else if (keyEquals(key, (K) cur)) { index = fIndex; break keyPresent; if (keyEquals(key, (K) cur)) { index = bIndex; break keyPresent; if (keyEquals(key, (K) cur)) { index = fIndex; break keyPresent;
Object cur; keyPresent: if ((cur = keys[index = SeparateKVObjKeyMixing.mix(keyHashCode(key)) % (capacity = keys.length)]) != key) { keyAbsentFreeSlot: if (cur != FREE) { int firstRemoved; if (cur != REMOVED) { if (keyEquals(key, (K) cur)) { break keyPresent; } else { if (noRemoved()) { int bIndex = index, fIndex = index, step = 1; while (true) { else if (keyEquals(key, (K) cur)) { index = bIndex; break keyPresent; else if (keyEquals(key, (K) cur)) { index = fIndex; break keyPresent; if (keyEquals(key, (K) cur)) { index = bIndex; break keyPresent; if (keyEquals(key, (K) cur)) { index = fIndex; break keyPresent;
Object cur; keyPresent: if ((cur = keys[index = SeparateKVObjKeyMixing.mix(keyHashCode(k)) % (capacity = keys.length)]) != k) { if (cur == FREE) { return defaultValue(); } else { if (cur != REMOVED) { if (keyEquals(k, (K) cur)) { break keyPresent; } else { if (noRemoved()) { int bIndex = index, fIndex = index, step = 1; while (true) { return defaultValue(); else if (keyEquals(k, (K) cur)) { index = bIndex; break keyPresent; return defaultValue(); else if (keyEquals(k, (K) cur)) { index = fIndex; break keyPresent; return defaultValue();
Object cur; keyPresent: if ((cur = keys[index = SeparateKVObjKeyMixing.mix(keyHashCode(key)) % (capacity = keys.length)]) != key) { keyAbsentFreeSlot: if (cur != FREE) { int firstRemoved; if (cur != REMOVED) { if (keyEquals(key, (K) cur)) { break keyPresent; } else { if (noRemoved()) { int bIndex = index, fIndex = index, step = 1; while (true) { else if (keyEquals(key, (K) cur)) { index = bIndex; break keyPresent; else if (keyEquals(key, (K) cur)) { index = fIndex; break keyPresent; if (keyEquals(key, (K) cur)) { index = bIndex; break keyPresent; if (keyEquals(key, (K) cur)) { index = fIndex; break keyPresent;
Object cur; keyPresent: if ((cur = keys[index = SeparateKVObjKeyMixing.mix(keyHashCode(k)) % (capacity = keys.length)]) != k) { if (cur == FREE) { } else { if (cur != REMOVED) { if (keyEquals(k, (K) cur)) { break keyPresent; } else { if (noRemoved()) { int bIndex = index, fIndex = index, step = 1; while (true) { else if (keyEquals(k, (K) cur)) { index = bIndex; break keyPresent; else if (keyEquals(k, (K) cur)) { index = fIndex; break keyPresent; else if (cur != REMOVED && keyEquals(k, (K) cur)) { index = bIndex; break keyPresent; else if (cur != REMOVED && keyEquals(k, (K) cur)) { index = fIndex; break keyPresent;
Object cur; keyPresent: if ((cur = keys[index = SeparateKVObjKeyMixing.mix(keyHashCode(k)) % (capacity = keys.length)]) != k) { if (cur == FREE) { } else { if (cur != REMOVED) { if (keyEquals(k, (K) cur)) { break keyPresent; } else { if (noRemoved()) { int bIndex = index, fIndex = index, step = 1; while (true) { else if (keyEquals(k, (K) cur)) { index = bIndex; break keyPresent; else if (keyEquals(k, (K) cur)) { index = fIndex; break keyPresent; else if (cur != REMOVED && keyEquals(k, (K) cur)) { index = bIndex; break keyPresent; else if (cur != REMOVED && keyEquals(k, (K) cur)) { index = fIndex; break keyPresent;
Object cur; keyPresent: if ((cur = keys[index = SeparateKVObjKeyMixing.mix(keyHashCode(k)) % (capacity = keys.length)]) != k) { if (cur == FREE) { } else { if (cur != REMOVED) { if (keyEquals(k, (K) cur)) { break keyPresent; } else { if (noRemoved()) { int bIndex = index, fIndex = index, step = 1; while (true) { else if (keyEquals(k, (K) cur)) { index = bIndex; break keyPresent; else if (keyEquals(k, (K) cur)) { index = fIndex; break keyPresent; else if (cur != REMOVED && keyEquals(k, (K) cur)) { index = bIndex; break keyPresent; else if (cur != REMOVED && keyEquals(k, (K) cur)) { index = fIndex; break keyPresent;
if (filter == null) throw new java.lang.NullPointerException(); if (this.isEmpty()) return false; boolean changed = false; int mc = modCount(); Object[] keys = set; char[] vals = values; if (noRemoved()) { for (int i = keys.length - 1; i >= 0; i--) { K key; incrementModCount(); mc++; keys[i] = REMOVED; postRemoveHook(); changed = true; incrementModCount(); mc++; keys[i] = REMOVED; postRemoveHook(); changed = true; if (mc != modCount()) throw new java.util.ConcurrentModificationException(); return changed;
@Override void rehash(int newCapacity) { int mc = modCount(); Object[] keys = set; char[] vals = values; initForRehash(newCapacity); if (noRemoved()) { for (int i = keys.length - 1; i >= 0; i--) { K key; if (newKeys[index = SeparateKVObjKeyMixing.mix(nullableKeyHashCode(key)) % capacity] != FREE) { int bIndex = index, fIndex = index, step = 1; while (true) { if (newKeys[index = SeparateKVObjKeyMixing.mix(nullableKeyHashCode(key)) % capacity] != FREE) { int bIndex = index, fIndex = index, step = 1; while (true) { if (mc != modCount()) throw new java.util.ConcurrentModificationException();
@Override public Character computeIfPresent(K key, BiFunction<? super K, ? super Character, ? extends Character> remappingFunction) { if (remappingFunction == null) throw new java.lang.NullPointerException(); int index = index(key); if (index >= 0) { // key is present char[] vals = values; Character newValue = remappingFunction.apply(key, vals[index]); if (newValue != null) { vals[index] = newValue; return newValue; } else { incrementModCount(); set[index] = REMOVED; postRemoveHook(); return null; } } else { // key is absent return null; } }
if (cur == FREE) { return defaultValue(); } else { int bIndex = index, fIndex = index, step = 1; } else if (cur == FREE) { return defaultValue(); } else if (cur == FREE) { return defaultValue(); incrementModCount(); ((Object[]) keys)[index] = REMOVED; postRemoveHook(); return val;
@Override public boolean containsEntry(Object key, char value) { int index = index(key); if (index >= 0) { // key is present return values[index] == value; } else { // key is absent return false; } }