Ответ
Load Factor (коэффициент загрузки) — это пороговое значение заполнения хэш-таблицы, при достижении которого её внутренний массив (capacity) увеличивается, и все элементы перехэшируются (rehash). Это компромисс между производительностью и использованием памяти.
- Значение по умолчанию в
java.util.HashMap—0.75f. - Формула срабатывания:
capacity * loadFactor. Например, при начальной capacity=16 и loadFactor=0.75, resize произойдёт при добавлении 12-го элемента.
Влияние на производительность:
- Высокий Load Factor (близкий к 1.0): Экономит память, но увеличивает вероятность коллизий, что замедляет операции поиска и добавления (время деградирует к O(n)).
- Низкий Load Factor (например, 0.5): Уменьшает коллизии и ускоряет операции, но требует больше памяти.
Пример создания HashMap с кастомным Load Factor:
// Создаёт HashMap с начальной ёмкостью 32 и порогом resize = 32 * 0.5 = 16
Map<String, Integer> map = new HashMap<>(32, 0.5f);