Каким образом выбирается начальный размер внутреннего массива в структурах данных HashMap?

В реализации HashMap в Java (и Android) начальный размер внутреннего массива (capacity) по умолчанию равен 16.

Короткий ответ

Что ответить на собеседовании

В реализации HashMap в Java (и Android) начальный размер внутреннего массива (capacity) по умолчанию равен 16. Это означает, что при создании HashMap без указания размера создаётся массив из 16 бакетов для хранения элементов.

Подробный разбор

Ответ с пояснениями

В реализации HashMap в Java (и Android) начальный размер внутреннего массива (capacity) по умолчанию равен 16. Это означает, что при создании HashMap без указания размера создаётся массив из 16 бакетов для хранения элементов.

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

Пример создания HashMap с начальным размером:

Map<String, Integer> map = new HashMap<>(32); // внутренний массив будет размером 32

Если размер не указан, используется значение по умолчанию 16.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку