Встречается на 2% собеседований по Java
Как устроена структура данных в HashMap
HashMap в Java хранит данные в виде массива Node<K,V>[], где каждый элемент (бакет) может содержать связанный список или дерево (в Java 8+ при большом количестве коллизий).
Основные моменты:
- Хеширование: ключи преобразуются в хеш (через
hashCode()), который определяет бакет. - Коллизии: если хеши совпадают, элементы добавляются в список/дерево в одном бакете.
- Динамическое расширение: при достижении
loadFactor(по умолчанию 0.75) размер массива удваивается, и элементы перераспределяются.
Пример:
java
HashMap<String, Integer> map = new HashMap<>();
map.put("a", 1); // Хеш "a" определяет бакет
map.put("b", 2); // Если хеш совпадает с "a", будет коллизияВажно:
- Ключи должны правильно реализовывать
hashCode()иequals(). - В Java 8+ при длине списка > 8 он преобразуется в красно-черное дерево для оптимизации поиска.

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