Java Core middle

Что сломается, если hashCode() вернуть константу?

Ответ

Все объекты попадут в один bucket HashMap. В Java 8+ при 8 коллизиях список превращается в red-black tree, но O(log n) вместо O(1) — всё равно деградация производительности.

Разбор: Все элементы с константным хешом садятся в один bucket. Перестройка в дерево начинается не с первой коллизии, а при 8 элементах в bucket'е (и capacity ≥ 64). Одинаковый hashCode не нарушает equals: контракт требует лишь обратного — равные объекты обязаны иметь равный хеш, но не наоборот.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться