Встречается на 3% собеседований по Java
Как реализована HashMap
HashMap в Java реализована как массив бакетов (корзин), где каждый бакет — это связный список или дерево (начиная с Java 8).
Ключевые моменты:
- Хеширование:
hashCode()ключа преобразуется в индекс массива через(n - 1) & hash(гдеn— размер массива). - Коллизии: При совпадении хешей элементы хранятся в виде связного списка. Если список превышает
TREEIFY_THRESHOLD(8), он преобразуется в красно-черное дерево для ускорения поиска. - Динамическое расширение: При достижении
loadFactor(по умолчанию 0.75) размер массива удваивается, и элементы перераспределяются.
Пример:
java
Map<String, Integer> map = new HashMap<>();
map.put("key", 1); // Хеш "key" определяет бакет
int value = map.get("key"); // Быстрый доступ по хешуОсобенности:
- Не гарантирует порядок элементов.
- Потокобезопасность:
ConcurrentHashMapдля многопоточности. nullразрешён как ключ (хранится в бакете 0).

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