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

Как бы реализовал алгоритм вставки элемента в HashMap

В Java HashMap использует метод put() для вставки элементов. Алгоритм включает:

  1. Вычисление хеша ключа через hashCode() и дополнительное перемешивание (чтобы избежать коллизий).
  2. Определение индекса корзины через (n - 1) & hash, где n — размер массива корзин.
  3. Проверка корзины:
    • Если корзина пуста — создаётся новая нода.
    • Если ключ существует — значение перезаписывается.
    • Если возникает коллизия (хеш совпал, но ключи разные) — элемент добавляется в связный список/красно-черное дерево (если длина списка > 8).

Пример:

java
HashMap<String, Integer> map = new HashMap<>();
map.put("key", 42); // Вставка элемента

Нюансы:

  • При достижении loadFactor (по умолчанию 0.75) размер массива удваивается и происходит рехеширование.
  • Для корректной работы ключи должны правильно реализовывать hashCode() и equals().
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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