Коллекции trainee
Как устроена HashMap внутри?
Ответ
Массив бакетов (table). По хэшу ключа определяется индекс бакета ((n-1) & hash при capacity — степени двойки). В бакете — связный список узлов Node (hash + key + value + next); при длине ≥ 8 и достаточной capacity список превращается в красно-чёрное дерево.
Разбор: HashMap — это именно массив бакетов с цепочками (separate chaining), а не дерево целиком и не открытая адресация: коллизии складываются в связный список Node, который при длине >=8 и достаточной capacity превращается в красно-чёрное дерево. Индекс считается как (n-1) & hash при capacity — степени двойки, а не hashCode & capacity при произвольном размере.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.