Java Core middle
Что будет, если hashCode() всегда возвращает одну константу?
Ответ
В Java 7 — деградация HashMap до связного списка O(n). В Java 8+ при 8 коллизиях в бакете он превращается в red-black tree, O(log n). В обоих случаях производительность резко падает.
Разбор: Treeification в Java 8 включается не при первой коллизии, а при достижении порога (TREEIFY_THRESHOLD = 8) и достаточном размере таблицы; до этого бакет остаётся связным списком. В Java 7 коллизионная цепочка — это односвязный список с линейным перебором O(n), бинарный поиск там невозможен.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.