Некоторые IDE имеют возможность отображать содержимое коллекции более «дружественным» способом, чем отображение внутренних структур данных коллекции.Вероятно, так, потому что большинство программистов используют коллекций, но не отлаживают их, и поэтому видение внутренних структур коллекции скрывает содержимое коллекции.
В NetBeans этопараметр можно изменить, перейдя в «Предпочтения» в категории «Java> Java Debugger» и установив различные «средства форматирования», такие как «Collection», «Map» и «Map.Entry».
В IntelliJ IDEA откройте диалоговое окно «Настройки».и найдите в разделе Построение, выполнение, развертывание -> Отладчик -> Представления данных -> Java.Опция называется «Включить альтернативное представление для классов коллекций».(Спасибо, Мэтт Лейдхольм!)
Что касается второй части вашего вопроса, если вы используете TreeMap<K, V>
, API предоставляет только те типы K
и V
, которые вы используете.Структура TreeMap.Entry
является внутренней структурой данных, которая хранится в тайне от клиента.Клиент не может перемещаться по древовидной структуре (слева / справа / родитель).Цель TreeMap
состоит не в том, чтобы представить древовидную структуру, а в том, чтобы предоставить абстракцию карты, ключи и значения которой открыты, отсортированы по ключу.
Вы можете получить Map.Entry
ссылки по телефону entrySet()
.Это ссылки на реальные TreeMap.Entry
объекты.Тем не менее, Map.Entry
не отображает левый / правый / родительский;он предоставляет только ключи и значения.