Встречается на собеседованиях • сегодня
Как происходит вставка элемента в HashMap, ели hashCode возвращает константу
При вставке элемента в HashMap с постоянным hashCode:
-
Все элементы будут попадать в одну корзину (bucket), так как индекс корзины вычисляется как
(n - 1) & hash, гдеn- размер таблицы, аhash- константа. -
Внутри корзины элементы хранятся как связный список (или дерево, если элементов много). Каждый новый элемент добавляется в конец списка.
- Это приводит к деградации производительности:
- Поиск становится O(n) вместо O(1)
- При достижении порога (TREEIFY_THRESHOLD = 8) список преобразуется в красно-черное дерево (O(log n))
Пример плохого hashCode:
java
@Override
public int hashCode() {
return 42; // Все объекты попадут в одну корзину
}Такой HashMap будет работать как связный список с худшей производительностью. Важно, чтобы hashCode() возвращал хорошо распределенные значения.

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