Стратегия каким-то образом зависит от конкретной реализации, но в целом, когда HashMap
(и HashSet
основано на этом) достигает 64 записей в целом и 8 записей в одном сегменте, она будет преобразованадо Tree
.До тех пор, пока не произойдет resize
, когда сегмент удваивается по размеру, таким образом, учитывается дополнительный бит места размещения записи - это называется rehash
- это делается для того, чтобы попытаться переместить записи в разные сегменты.
См. this и this для некоторых особенностей реализации.