Junior — Middle
Jak wybierany jest początkowy rozmiar wewnętrznej tablicy w strukturach danych HashMap?
sobes.tech AI
Odpowiedź od AI
В реализации HashMap в Java (и Android) начальный размер внутреннего массива (capacity) по умолчанию равен 16. Это означает, что при создании HashMap без указания размера создаётся массив из 16 бакетов для хранения элементов.
Размер всегда выбирается как степень двойки, чтобы оптимизировать вычисление индекса для ключа через битовые операции. При добавлении элементов, если количество заполненных бакетов превышает порог (load factor, по умолчанию 0.75), размер массива увеличивается вдвое.
Пример создания HashMap с начальным размером:
Map<String, Integer> map = new HashMap<>(32); // внутренний массив будет размером 32
Если размер не указан, используется значение по умолчанию 16.