Каким образом определяется размер хэш-таблиц в HashMap

«Каким образом определяется размер хэш-таблиц в HashMap» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Размер хэш-таблицы в HashMap определяется начальной емкостью (capacity) и коэффициентом загрузки (load factor). По умолчанию:

  • Начальная емкость: 16
  • Коэффициент загрузки: 0.75

При достижении size > capacity * loadFactor происходит автоматическое увеличение емкости вдвое и перехеширование элементов. Можно задать свои параметры в конструкторе:

// С начальной емкостью 32 и loadFactor 0.8
Map<String, Integer> map = new HashMap<>(32, 0.8f);

Выбор размера влияет на производительность: слишком маленький размер приведет к частым рехешированиям, а слишком большой - к избыточному расходу памяти.