По порядку Middle Коллекции изнутри обновлено
Шаги HashMap.put
Вопрос
Расставьте шаги HashMap.put(key, value) в Java 8+ по порядку.
Попробуйте сами
Расставьте шаги по порядку стрелками.
- 1Вычислить hash:
h ^ (h >>> 16)отkey.hashCode() - 2Если размер превысил порог
capacity × loadFactor, удвоить таблицу - 3Найти корзину:
(n - 1) & hash - 4Пройти по цепочке или дереву, сравнивая hash и equals
- 5При необходимости превратить длинную цепочку в дерево
- 6Заменить значение или добавить новый узел
Показать ответ и разбор
Коротко
Сначала хеш и корзина, затем поиск ключа внутри корзины, затем запись. После добавления проверяется длина цепочки (treeify) и общий размер (resize).
Правильный порядок
- 1Вычислить hash:
h ^ (h >>> 16)отkey.hashCode() - 2Найти корзину:
(n - 1) & hash - 3Пройти по цепочке или дереву, сравнивая hash и equals
- 4Заменить значение или добавить новый узел
- 5При необходимости превратить длинную цепочку в дерево
- 6Если размер превысил порог
capacity × loadFactor, удвоить таблицу
Разбор
Сначала хеш и корзина, затем поиск ключа внутри корзины, затем запись. После добавления проверяется длина цепочки (treeify) и общий размер (resize).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.