Встречается на 2% собеседований по Java
Всегда ли в Bucket связный список в HashMap
В Java 8 и выше HashMap использует гибридный подход: при малом количестве элементов (обычно до 8) бакет хранится как связный список, а при превышении порога преобразуется в сбалансированное дерево (красно-черное). Это сделано для защиты от атак через коллизии хэшей.
Пример структуры бакета:
java
// До Java 8 - всегда связный список
static class Entry<K,V> implements Map.Entry<K,V> {
final K key;
V value;
Entry<K,V> next;
// ...
}
// Java 8+ - может быть деревом
static final class TreeNode<K,V> extends LinkedHashMap.Entry<K,V> {
TreeNode<K,V> parent;
TreeNode<K,V> left;
TreeNode<K,V> right;
// ...
}Преобразование происходит при TREEIFY_THRESHOLD = 8 и обратно при UNTREEIFY_THRESHOLD = 6.

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