Sobes.tech
Назад к вопросам
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-го элемента произойдет расширение массива.