Назад к вопросам
Senior
4
Что такое load factor и как он работает?
Компании, где спрашивали
01.tech
Ответ от нейросети
sobes.tech AI
Load factor (коэффициент загрузки) в Java — это параметр, который определяет, насколько заполнена хеш-таблица (например, HashMap) перед тем, как она будет расширена (rehash).
Он выражается как отношение количества элементов к размеру массива бакетов. Например, load factor 0.75 означает, что при заполнении 75% массива произойдет увеличение размера.
Как это работает:
- При добавлении элементов в HashMap, если количество элементов превышает threshold = load factor * capacity, происходит расширение массива (обычно вдвое).
- Это помогает балансировать между использованием памяти и скоростью доступа: меньший load factor уменьшает количество коллизий, но требует больше памяти; больший — экономит память, но увеличивает коллизии и время поиска.
Пример:
HashMap<String, Integer> map = new HashMap<>(16, 0.75f);
// capacity = 16, load factor = 0.75
// threshold = 16 * 0.75 = 12
// При добавлении 13-го элемента произойдет расширение массива.