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

Где хранятся листы внутри HashMap

В HashMap пары ключ-значение хранятся в массиве Node<K,V>[] table. Каждая ячейка массива (bucket) может содержать:

  1. null - если в этот bucket ничего не записано
  2. Один Node - если нет коллизий
  3. Связный список Node - при коллизиях (Java 7 и ниже)
  4. Сбалансированное дерево (при большом количестве коллизий в Java 8+)

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

java
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) связный список преобразуется в красно-черное дерево для улучшения производительности с O(n) до O(log n).

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

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

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

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