/** * rehashes the map to the new capacity. * * @param newCapacity an <code>int</code> value */ protected void rehash(int newCapacity) { int oldCapacity = _set.length; K oldKeys[] = (K[]) _set; short oldVals[] = _values; _set = new Object[newCapacity]; Arrays.fill(_set, FREE); _values = new short[newCapacity]; for (int i = oldCapacity; i-- > 0; ) { if (oldKeys[i] != FREE && oldKeys[i] != REMOVED) { K o = oldKeys[i]; int index = insertionIndex(o); if (index < 0) { throwObjectContractViolation(_set[(-index - 1)], o); } _set[index] = o; _values[index] = oldVals[i]; } } }