Как устроен HashMap? Что такое bucket, как разрешаются коллизии?

Ответ

Массив связных списков (Node[]). Бакет = ячейка массива. Коллизия → цепочка.

Разбор: HashMap — это массив Node[], где бакет это одна ячейка массива, а коллизии разрешаются цепочкой (связным списком), которая при достаточной длине и ёмкости превращается в дерево. Ловушки: открытая адресация с пробированием — это другая стратегия, в HashMap её нет; бакеты не являются деревьями изначально (дерево появляется лишь при TREEIFY_THRESHOLD); и вложенных массивов внутри бакета не существует.

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

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