in src/main/java/org/apache/commons/collections4/map/AbstractHashedMap.java [615:644]
protected void ensureCapacity(final int newCapacity) {
final int oldCapacity = data.length;
if (newCapacity <= oldCapacity) {
return;
}
if (size == 0) {
threshold = calculateThreshold(newCapacity, loadFactor);
data = new HashEntry[newCapacity];
} else {
final HashEntry<K, V>[] oldEntries = data;
final HashEntry<K, V>[] newEntries = new HashEntry[newCapacity];
modCount++;
for (int i = oldCapacity - 1; i >= 0; i--) {
HashEntry<K, V> entry = oldEntries[i];
if (entry != null) {
oldEntries[i] = null; // gc
do {
final HashEntry<K, V> next = entry.next;
final int index = hashIndex(entry.hashCode, newCapacity);
entry.next = newEntries[index];
newEntries[index] = entry;
entry = next;
} while (entry != null);
}
}
threshold = calculateThreshold(newCapacity, loadFactor);
data = newEntries;
}
}