Рассмотрим следующий код HashMap.clear()
:
/**
* Removes all of the mappings from this map.
* The map will be empty after this call returns.
*/
public void clear() {
modCount++;
Entry[] tab = table;
for (int i = 0; i < tab.length; i++)
tab[i] = null;
size = 0;
}
Кажется, что внутренний массив (table
) объектов Entry
никогда не сжимается. Поэтому, когда я добавляю к карте 10000 элементов, и после этого вызова map.clear()
, он будет содержать 10000 нулей в нем внутреннего массива. Итак, мой вопрос: как JVM обрабатывает этот массив ничего, и, следовательно, эффективна HashMap
?