По порядку Middle Коллекции изнутри обновлено

Шаги HashMap.put

Вопрос

Расставьте шаги HashMap.put(key, value) в Java 8+ по порядку.

Попробуйте сами

Расставьте шаги по порядку стрелками.

  1. 1
    Вычислить hash: h ^ (h >>> 16) от key.hashCode()
  2. 2
    Если размер превысил порог capacity × loadFactor, удвоить таблицу
  3. 3
    Найти корзину: (n - 1) & hash
  4. 4
    Пройти по цепочке или дереву, сравнивая hash и equals
  5. 5
    При необходимости превратить длинную цепочку в дерево
  6. 6
    Заменить значение или добавить новый узел
Показать ответ и разбор

Коротко

Сначала хеш и корзина, затем поиск ключа внутри корзины, затем запись. После добавления проверяется длина цепочки (treeify) и общий размер (resize).

Правильный порядок

  1. 1
    Вычислить hash: h ^ (h >>> 16) от key.hashCode()
  2. 2
    Найти корзину: (n - 1) & hash
  3. 3
    Пройти по цепочке или дереву, сравнивая hash и equals
  4. 4
    Заменить значение или добавить новый узел
  5. 5
    При необходимости превратить длинную цепочку в дерево
  6. 6
    Если размер превысил порог capacity × loadFactor, удвоить таблицу

Разбор

Сначала хеш и корзина, затем поиск ключа внутри корзины, затем запись. После добавления проверяется длина цепочки (treeify) и общий размер (resize).

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме