HashMap — устройство?

Ответ

Node<K,V>[]. Размер — степень двойки (default 16). Индекс: (n-1) & hash(key). Коллизии — список. Java 8+: TREEIFY_THRESHOLD=8 И capacity ≥ 64 → red-black tree.

Разбор: HashMap хранит данные в Node<K,V>[] с capacity-степенью двойки (по умолчанию 16), индекс бакета вычисляется быстрым (n-1) & hash, а не делением по модулю. Деревья (red-black) появляются только при одновременном выполнении двух условий: длина цепочки >= 8 (TREEIFY_THRESHOLD) И capacity >= 64; иначе вместо treeify происходит resize. Ловушки в дистракторах: простое число / кратность 10 / любое чётное число вместо степени двойки, операция % и неверная маска (& capacity вместо (n-1) & hash), AVL вместо red-black и немедленная треификация без порога capacity >= 64.

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

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