Встречается на 2% собеседований по Java
Какой контракт при добавлении элемента в HashMap
При добавлении элемента в HashMap используется ключ для вычисления хеш-кода (через hashCode()), который определяет индекс корзины (bucket). Если хеш-коды ключей совпадают, вызывается equals() для проверки эквивалентности. Если ключ уже существует, значение перезаписывается. Если нет — элемент добавляется в корзину (или цепочку/дерево при коллизиях).
Пример:
java
Map<String, Integer> map = new HashMap<>();
map.put("key", 1); // Добавляет пару ("key", 1)
map.put("key", 2); // Перезаписывает значение на 2Контракт:
hashCode()должен быть консистентным: для одного объекта всегда возвращает одно значение.- Если
a.equals(b) == true, тоa.hashCode() == b.hashCode(). Обратное не обязательно. - При коллизиях
HashMapиспользует связный список (до Java 8) или сбалансированное дерево (если корзина переполнена).
Нарушение контракта hashCode()/equals() приведет к некорректной работе HashMap.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы