Встречается на 2% собеседований по Java
Какая структура данных в HashMap
HashMap в Java использует комбинацию массива и связанных списков (или деревьев в Java 8+). Основные элементы:
- Массив бакетов - каждый элемент массива называется бакетом (bucket), хранит Entry (Node в Java 8+)
- Entry/Node - содержит key, value, hash и ссылку на следующий Node (для разрешения коллизий)
- При коллизиях - элементы с одинаковым хешем попадают в один бакет, образуя связанный список. В Java 8 при большом кол-ве элементов (>8) список преобразуется в красно-черное дерево.
Пример:
java
HashMap<String, Integer> map = new HashMap<>();
map.put("key", 1); // key хешируется, определяется бакет
map.get("key"); // по хешу key находится нужный бакетПри достижении load factor (по умолчанию 0.75) происходит rehashing - увеличение массива бакетов в 2 раза.

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