Встречается на 2% собеседований по Java
Как хранятся значения в HashMap
В HashMap значения хранятся в виде массива бакетов (корзин), где каждый бакет содержит связанный список или дерево узлов (в Java 8+). При добавлении пары ключ-значение:
- Вычисляется хэш ключа через
hashCode() - Определяется индекс бакета:
index = hash & (n-1), где n - размер массива - Если бакет пуст - создается нода. При коллизии (одинаковый индекс) элементы добавляются в список/дерево (при достижении порога в 8 элементов список преобразуется в красно-черное дерево для оптимизации поиска)
Пример:
java
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1); // hash("apple") & (16-1) = индекс бакета
map.put("banana", 2);При достижении load factor (по умолчанию 0.75) происходит рехеширование - массив увеличивается вдвое и все элементы перераспределяются.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы