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.