Какое минимальное количество элементов необходимо для инициализации HashMap без автоматического расширения?
Answer from AI
sobes.tech AI
HashMap в Java имеет начальную ёмкость (capacity) и коэффициент загрузки (load factor), по умолчанию 16 и 0.75 соответственно. Автоматическое расширение происходит, когда количество элементов превышает capacity * load factor.
Чтобы избежать автоматического расширения при инициализации, нужно задать ёмкость так, чтобы вместить нужное количество элементов без превышения порога.
Минимальное количество элементов для инициализации HashMap без расширения — это максимально возможное количество элементов, не превышающее threshold = capacity * load factor.
Например, при capacity=16 и load factor=0.75 threshold = 12. Значит, при добавлении до 12 элементов расширения не будет.
Если вы хотите инициализировать HashMap с определённым количеством элементов n без расширения, установите initialCapacity >= n / loadFactor.
Пример:
int expectedElements = 10;
float loadFactor = 0.75f;
int initialCapacity = (int) Math.ceil(expectedElements / loadFactor);
HashMap<String, String> map = new HashMap<>(initialCapacity, loadFactor);