Объясните смысл параметров в конструкторе HashMap(int initialCapacity, float loadFactor)
-
initialCapacity— начальное количество корзин в хэш-таблице. Будет округлено вверх до ближайшей степени двойки. Задает начальный размер массива корзин. -
loadFactor— коэффициент загрузки, определяющий, при какой заполненности таблица будет расширена. Значение по умолчанию — 0.75, что является компромиссом между потреблением памяти и частотой коллизий.
При loadFactor = 0.75 рехеширование произойдет, когда количество элементов достигнет 75% от capacity. Низкий loadFactor (0.5) уменьшает коллизии, но увеличивает расход памяти. Высокий loadFactor (0.9) экономит память, но увеличивает длину цепочек в корзинах.
Практическое правило: если известно приблизительное количество элементов N, задайте initialCapacity = (int)(N / loadFactor) + 1, чтобы избежать рехеширования.
На собеседовании: объясните оба параметра и их влияние на производительность. Покажите, что знаете формулу threshold = capacity * loadFactor и значение по умолчанию 0.75.