Java Core middle

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

Ответ

Все объекты попадут в один bucket HashMap. Java 7: связный список O(n). Java 8+: при 8 коллизиях И capacity ≥ 64 — перестройка в red-black tree O(log n). Это лучше O(n), но деградация по сравнению с O(1).

Разбор: Константный hashCode после spreading всё равно даёт один индекс, поэтому все элементы оседают в одном bucket. Treeification наступает не с первой коллизии, а при достижении TREEIFY_THRESHOLD = 8 и одновременно table.length ≥ 64 (иначе сначала идёт resize). Spreading перемешивает биты, но из одного значения не делает разные индексы.

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

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