Да, HashMap может преобразовать слишком маленький tree bin обратно в список. Однако правило не сводится к «после любого удаления осталось 6 элементов — всегда список»: путь удаления учитывает структуру дерева.
Произойдёт ли обратная операция (дерево → список) при удалении элементов из HashMap?
Да, HashMap может преобразовать слишком маленький tree bin обратно в список. Однако правило не сводится к «после любого удаления осталось 6 элементов — всегда список»: путь удаления учитывает структуру дерева.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Да, HashMap может преобразовать слишком маленький tree bin обратно в список. Однако правило не сводится к «после любого удаления осталось 6 элементов — всегда список»: путь удаления учитывает структуру дерева.
В OpenJDK untreeify используется при удалении и при разделении корзины во время resize. Порог UNTREEIFY_THRESHOLD связан с определёнными путями перераспределения, а removeTreeNode проверяет также форму и условия изменения дерева. Это деталь реализации, не контракт Map. Для собеседования важно понимать цель: у маленькой корзины расходы дерева не оправданы.
Источник: github.com.