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

Как происходит проверка по ключу в HashMap

При добавлении элемента в HashMap сначала вычисляется хеш-код ключа через метод hashCode(). Затем с помощью внутренней функции хеширования (обычно (n-1) & hash) определяется индекс корзины (bucket).

Если в корзине уже есть элементы:

  1. Сравнивается хеш нового ключа с хешами существующих ключей
  2. Если хеши совпадают, проверяется равенство через equals()
  3. При совпадении - значение перезаписывается
  4. При несовпадении - элемент добавляется в конец связного списка/дерева (Java 8+)

Пример:

java
Map<String, Integer> map = new HashMap<>();
map.put("key", 1);  // hash("key") -> индекс корзины
map.put("key", 2);  // перезапишет значение, т.к. equals() вернет true

Важно: для корректной работы ключи должны правильно реализовывать hashCode() и equals().

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

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

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

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