При вызове метода put(key, value):
Как происходит вставка значения в HashMap?
При вызове метода put(key, value):
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
При вызове метода put(key, value):
-
Вычисляется хэш ключа (
key.hashCode()). -
Этот хэш используется для определения индекса корзины (bucket) в массиве.
-
Если в корзине пусто, создается новая запись (
Node) с ключом, значением, хэшем и ссылкой на следующее значение (которая равнаnull), и помещается в корзину. -
Если в корзине уже есть записи:
- Если существует запись с таким же ключом (
key.equals(existingKey)), значение в этой записи обновляется. - Если ключи отличаются, новая запись связывается с существующими записями в виде связанного списка или дерева (если количество записей в корзине превышает пороговое значение, происходит преобразование в дерево для улучшения производительности).
- Если существует запись с таким же ключом (
-
Проверяется, не превышен ли порог загрузки (load factor * capacity). Если превышен, происходит изменение размера массива (resizing) вдвое. При этом все существующие записи перераспределяются по новым корзинам.
// Пример вызова метода put
hashMap.put("ключ", "значение");