Встречается на 2% собеседований по Java
Как устроен лист в HashMap
В Java HashMap использует массив Node<K,V>[] для хранения данных. Каждый элемент массива (bucket) может содержать связный список или дерево (в Java 8+) для разрешения коллизий.
При добавлении элемента:
- Вычисляется хэш ключа (
hash(key)) - Определяется индекс корзины:
index = (n - 1) & hash, гдеn- размер массива - Если корзина пуста - создается нода
- При коллизии элементы добавляются в список/дерево
Пример структуры ноды:
java
static class Node<K,V> {
final int hash;
final K key;
V value;
Node<K,V> next;
// конструкторы и методы
}При достижении порога (TREEIFY_THRESHOLD = 8) список преобразуется в красно-черное дерево для улучшения производительности с O(n) до O(log n). При уменьшении элементов (UNTREEIFY_THRESHOLD = 6) дерево снова становится списком.

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