}
public void remove(Object k1) { remove(k1, null); }
- public void remove(Object k1, Object k2) { put(k1, k2, null); }
+ public void remove(Object k1, Object k2) { put_(k1, k2, null); }
private void rehash() {
Object[] oldkeys1 = keys1;
usedslots = 0;
for(int i=0; i<oldvals.length; i++)
if (((oldkeys1[i] != null && oldkeys1[i] != placeholder) || (oldkeys2 != null && oldkeys2[i] != null)) && oldvals[i] != null)
- put(oldkeys1[i], oldkeys2 == null ? null : oldkeys2[i], oldvals[i]);
+ put_(oldkeys1[i], oldkeys2 == null ? null : oldkeys2[i], oldvals[i]);
}
public Object get(Object k1) { return get(k1, null); }
}
public void put(Object k1, Object v) { put(k1, null, v); }
- public void put(Object k1, Object k2, Object v) {
+ public void put(Object k1, Object k2, Object v) { put_(k1, k2, v); }
+ private void put_(Object k1, Object k2, Object v) {
if (usedslots * loadFactor > vals.length) rehash();
int hash = (k1 == null ? 0 : k1.hashCode()) ^ (k2 == null ? 0 : k2.hashCode());
int dest = Math.abs(hash) % vals.length;