Встречается на 2% собеседований по Java

Хранятся ли листы HashMap в массиве

Да, HashMap в Java хранит свои элементы (пары ключ-значение) в массиве Node<K,V>[] table. Каждая ячейка массива может содержать либо null, либо ссылку на первый элемент связного списка (или дерева, если список слишком длинный). При коллизиях (одинаковый hashCode) новые элементы добавляются в список/дерево.

Пример структуры:

java
transient Node<K,V>[] table;  

static class Node<K,V> implements Map.Entry<K,V> {  
    final int hash;  
    final K key;  
    V value;  
    Node<K,V> next; // Ссылка на следующий элемент при коллизии  
}  

При достижении определенного размера (TREEIFY_THRESHOLD = 8) список преобразуется в красно-черное дерево для оптимизации поиска.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы