Spec-Zone.ru › OpenJDK 27

Класс DefaultMutableTreeNode

java.lang.Object
javax.swing.tree.DefaultMutableTreeNode
Все реализуемые интерфейсы:
Serializable, Cloneable, MutableTreeNode, TreeNode
Прямые известные подклассы:
JTree.DynamicUtilTreeNode
public class DefaultMutableTreeNode extends Object implements Cloneable, MutableTreeNode, Serializable
DefaultMutableTreeNode — это универсальный узел в древовидной структуре данных. Примеры использования стандартных изменяемых узлов дерева приведены в разделе Как использовать деревья в Руководстве по Java.

У узла дерева может быть не более одного родителя и ноль или более дочерних узлов. DefaultMutableTreeNode предоставляет операции для просмотра и изменения родителя и дочерних узлов, а также операции для просмотра дерева, частью которого является узел. Дерево узла — это множество всех узлов, до которых можно добраться, начав с данного узла и пройдя по всем возможным связям с родителями и дочерними узлами. Узел без родителя является корнем своего дерева; узел без дочерних узлов является листом. Дерево может состоять из множества поддеревьев, каждый узел при этом служит корнем собственного поддерева.

Этот класс предоставляет перечисления для эффективного обхода дерева или поддерева в различных порядках, а также для прохода по пути между двумя узлами. DefaultMutableTreeNode может также хранить ссылку на пользовательский объект, назначение которого определяется пользователем. Вызов toString() для получения строкового представления DefaultMutableTreeNode возвращает строковое представление его пользовательского объекта.

Этот класс не является потокобезопасным.Если вы намерены использовать DefaultMutableTreeNode (или дерево TreeNodes) в нескольких потоках, необходимо самостоятельно выполнять синхронизацию. Рекомендуется синхронизироваться на корневом узле дерева.

Хотя DefaultMutableTreeNode реализует интерфейс MutableTreeNode и позволяет добавлять любые реализации MutableTreeNode, не все методы DefaultMutableTreeNode применимы ко всем реализациям MutableTreeNode. В частности, при использовании некоторых предоставляемых перечислений предполагается, что DefaultMutableTreeNode содержит только экземпляры DefaultMutableNode. Все методы TreeNode/MutableTreeNode работают в соответствии с определением независимо от добавленных реализаций.

Предупреждение: сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для кратковременного хранения или RMI между приложениями, работающими с одной и той же версией Swing. Начиная с версии 1.4, в пакет java.beans добавлена поддержка долговременного хранения всех JavaBeans. См. XMLEncoder.

См. также:
  • MutableTreeNode

Краткое описание полей

Модификатор и тип Поле Описание
protected boolean allowsChildren
значение true, если узел может иметь дочерние узлы
protected Vector<TreeNode> children
массив дочерних узлов; может быть null, если у этого узла нет дочерних узлов
static final Enumeration<TreeNode> EMPTY_ENUMERATION
Перечисление, которое всегда пусто.
protected MutableTreeNode parent
родитель этого узла или null, если у этого узла нет родителя
protected Object userObject
необязательный пользовательский объект

Краткое описание конструкторов

Конструктор Описание
DefaultMutableTreeNode()
Создает узел дерева без родителя и дочерних узлов, но допускающий наличие дочерних узлов.
DefaultMutableTreeNode(Object userObject)
Создает узел дерева без родителя и дочерних узлов, допускающий наличие дочерних узлов, и инициализирует его указанным пользовательским объектом.
DefaultMutableTreeNode(Object userObject, boolean allowsChildren)
Создает узел дерева без родителя и дочерних узлов, инициализированный указанным пользовательским объектом; наличие дочерних узлов допускается только в том случае, если это указано.

Краткое описание методов

Модификатор и тип Метод Описание
void add(MutableTreeNode newChild)
Удаляет newChild из родительского узла и добавляет его в конец массива дочерних узлов этого узла, делая его дочерним узлом данного узла.
Enumeration<TreeNode> breadthFirstEnumeration()
Создает и возвращает перечисление для обхода поддерева с корнем в этом узле в ширину.
Enumeration<TreeNode> children()
Создает и возвращает перечисление дочерних узлов этого узла в прямом порядке.
Object clone()
Переопределен, чтобы сделать clone открытым.
Enumeration<TreeNode> depthFirstEnumeration()
Создает и возвращает перечисление для обхода поддерева с корнем в этом узле в глубину.
boolean getAllowsChildren()
Возвращает true, если у этого узла могут быть дочерние узлы.
TreeNode getChildAfter(TreeNode aChild)
Возвращает дочерний узел из массива дочерних узлов этого узла, непосредственно следующий за aChild, который должен быть дочерним узлом данного узла.
TreeNode getChildAt(int index)
Возвращает дочерний узел с указанным индексом в массиве дочерних узлов этого узла.
TreeNode getChildBefore(TreeNode aChild)
Возвращает дочерний узел из массива дочерних узлов этого узла, непосредственно предшествующий aChild, который должен быть дочерним узлом данного узла.
int getChildCount()
Возвращает количество дочерних узлов этого узла.
int getDepth()
Возвращает глубину дерева с корнем в этом узле — максимальное расстояние от этого узла до листа.
TreeNode getFirstChild()
Возвращает первый дочерний узел этого узла.
DefaultMutableTreeNode getFirstLeaf()
Находит и возвращает первый лист, являющийся потомком этого узла, — это либо сам узел, либо первый лист первого дочернего узла.
int getIndex(TreeNode aChild)
Возвращает индекс указанного дочернего узла в массиве дочерних узлов этого узла.
TreeNode getLastChild()
Возвращает последний дочерний узел этого узла.
DefaultMutableTreeNode getLastLeaf()
Находит и возвращает последний лист, являющийся потомком этого узла, — это либо сам узел, либо последний лист последнего дочернего узла.
int getLeafCount()
Возвращает общее количество листьев, являющихся потомками этого узла.
int getLevel()
Возвращает количество уровней над этим узлом — расстояние от корня до этого узла.
DefaultMutableTreeNode getNextLeaf()
Возвращает лист, следующий за этим узлом, или null, если этот узел является последним листом дерева.
DefaultMutableTreeNode getNextNode()
Возвращает узел, следующий за этим узлом при прямом обходе дерева этого узла.
DefaultMutableTreeNode getNextSibling()
Возвращает следующий соседний узел этого узла в массиве дочерних узлов родителя.
TreeNode getParent()
Возвращает родителя этого узла или null, если у этого узла нет родителя.
TreeNode[] getPath()
Возвращает путь от корня к этому узлу.
protected TreeNode[] getPathToRoot(TreeNode aNode, int depth)
Формирует массив родителей узла вплоть до корневого узла включительно; исходный узел является последним элементом возвращаемого массива.
DefaultMutableTreeNode getPreviousLeaf()
Возвращает лист, предшествующий этому узлу, или null, если этот узел является первым листом дерева.
DefaultMutableTreeNode getPreviousNode()
Возвращает узел, предшествующий этому узлу при прямом обходе дерева этого узла.
DefaultMutableTreeNode getPreviousSibling()
Возвращает предыдущий соседний узел этого узла в массиве дочерних узлов родителя.
TreeNode getRoot()
Возвращает корень дерева, содержащего этот узел.
TreeNode getSharedAncestor(DefaultMutableTreeNode aNode)
Возвращает ближайшего общего предка этого узла и aNode.
int getSiblingCount()
Возвращает количество соседних узлов этого узла.
Object getUserObject()
Возвращает пользовательский объект этого узла.
Object[] getUserObjectPath()
Возвращает путь из пользовательских объектов от корня к этому узлу.
void insert(MutableTreeNode newChild, int childIndex)
Удаляет newChild из текущего родителя (если он есть), назначает родителем дочернего узла этот узел, а затем добавляет дочерний узел в массив дочерних узлов этого узла по индексу childIndex.
boolean isLeaf()
Возвращает true, если у этого узла нет дочерних узлов.
boolean isNodeAncestor(TreeNode anotherNode)
Возвращает true, если anotherNode является предком этого узла, то есть если это сам данный узел, его родитель или предок его родителя.
boolean isNodeChild(TreeNode aNode)
Возвращает true, если aNode является дочерним узлом данного узла.
boolean isNodeDescendant(DefaultMutableTreeNode anotherNode)
Возвращает true, если anotherNode является потомком этого узла, то есть если это сам данный узел, один из его дочерних узлов или потомок одного из его дочерних узлов.
boolean isNodeRelated(DefaultMutableTreeNode aNode)
Возвращает true тогда и только тогда, когда aNode находится в том же дереве, что и этот узел.
boolean isNodeSibling(TreeNode anotherNode)
Возвращает true, если anotherNode является соседним узлом этого узла (имеет того же родителя).
boolean isRoot()
Возвращает true, если этот узел является корнем дерева.
Enumeration<TreeNode> pathFromAncestorEnumeration(TreeNode ancestor)
Создает и возвращает перечисление, проходящее по пути от ancestor к этому узлу.
Enumeration<TreeNode> postorderEnumeration()
Создает и возвращает перечисление для обхода поддерева с корнем в этом узле в обратном порядке.
Enumeration<TreeNode> preorderEnumeration()
Создает и возвращает перечисление для обхода поддерева с корнем в этом узле в прямом порядке.
void remove(int childIndex)
Удаляет дочерний узел с указанным индексом из списка дочерних узлов этого узла и присваивает родителю этого узла значение null.
void remove(MutableTreeNode aChild)
Удаляет aChild из массива дочерних узлов этого узла, присваивая ему родителя null.
void removeAllChildren()
Удаляет все дочерние узлы этого узла, присваивая их родителям значение null.
void removeFromParent()
Удаляет поддерево с корнем в этом узле из дерева, присваивая родителю этого узла значение null.
void setAllowsChildren(boolean allows)
Определяет, разрешено ли этому узлу иметь дочерние узлы.
void setParent(MutableTreeNode newParent)
Назначает родителем этого узла newParent, но не изменяет массив дочерних узлов родителя.
void setUserObject(Object userObject)
Назначает пользовательским объектом этого узла userObject.
String toString()
Возвращает результат вызова toString() для пользовательского объекта этого узла или пустую строку, если у узла нет пользовательского объекта.

Методы, объявленные в классе Object

equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удален в будущей версии.
Финализация устарела и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание полей

EMPTY_ENUMERATION

public static final Enumeration<TreeNode> EMPTY_ENUMERATION
Перечисление, которое всегда пусто. Используется, когда запрашивается перечисление дочерних узлов листового узла.

parent

protected MutableTreeNode parent
родитель этого узла или null, если у узла нет родителя

children

protected Vector<TreeNode> children
массив дочерних узлов; может быть null, если у узла нет дочерних узлов

userObject

protected transient Object userObject
необязательный пользовательский объект

allowsChildren

protected boolean allowsChildren
true, если узел может иметь дочерние узлы

Подробное описание конструкторов

DefaultMutableTreeNode

public DefaultMutableTreeNode()
Создаёт узел дерева без родителя и дочерних узлов, но допускающий наличие дочерних узлов.

DefaultMutableTreeNode

public DefaultMutableTreeNode(Object userObject)
Создаёт узел дерева без родителя и дочерних узлов, но допускающий наличие дочерних узлов, и инициализирует его указанным пользовательским объектом.
Параметры:
userObject — объект Object, предоставленный пользователем и содержащий данные узла

DefaultMutableTreeNode

public DefaultMutableTreeNode(Object userObject, boolean allowsChildren)
Создаёт узел дерева без родителя и дочерних узлов, инициализирует его указанным пользовательским объектом и разрешает наличие дочерних узлов только в том случае, если это указано.
Параметры:
userObject — объект Object, предоставленный пользователем и содержащий данные узла
allowsChildren — если значение true, узел может иметь дочерние узлы; в противном случае он всегда является листовым узлом

Подробное описание методов

insert

public void insert(MutableTreeNode newChild, int childIndex)
Удаляет newChild из его текущего родителя (если он есть), назначает этому узлу роль родителя дочернего узла, а затем добавляет дочерний узел в массив дочерних узлов этого узла по индексу childIndex. newChild не должен быть null и не должен быть предком этого узла.
Определено в:
insert в интерфейсе MutableTreeNode
Параметры:
newChild — MutableTreeNode, который нужно вставить в этот узел
childIndex — индекс в массиве дочерних узлов этого узла, по которому нужно вставить узел
Исключения:
ArrayIndexOutOfBoundsException — если childIndex выходит за допустимые границы
IllegalArgumentException — если newChild равен null или является предком этого узла
IllegalStateException — если этот узел не допускает наличие дочерних узлов
См. также:
  • isNodeDescendant(DefaultMutableTreeNode)

remove

public void remove(int childIndex)
Удаляет дочерний узел с указанным индексом из списка дочерних узлов этого узла и устанавливает для родителя этого узла значение null. Удаляемый дочерний узел должен быть MutableTreeNode.
Определено в:
remove в интерфейсе MutableTreeNode
Параметры:
childIndex — индекс дочернего узла, который нужно удалить, в массиве дочерних узлов этого узла
Исключения:
ArrayIndexOutOfBoundsException — если childIndex выходит за допустимые границы

setParent

public void setParent(MutableTreeNode newParent)
Назначает newParent родителем этого узла, но не изменяет массив дочерних узлов родителя. Этот метод вызывается из insert() и remove() для переназначения родителя дочернего узла; его не следует вызывать где-либо ещё.
Определено в:
setParent в интерфейсе MutableTreeNode
Параметры:
newParent — новый родитель этого узла

getParent

public TreeNode getParent()
Возвращает родителя этого узла или null, если у узла нет родителя.
Определено в:
getParent в интерфейсе TreeNode
Возвращает:
родителя этого узла типа TreeNode или null, если у узла нет родителя

getChildAt

public TreeNode getChildAt(int index)
Возвращает дочерний узел с указанным индексом в массиве дочерних узлов этого узла.
Определено в:
getChildAt в интерфейсе TreeNode
Параметры:
index — индекс в массиве дочерних узлов этого узла
Возвращает:
TreeNode из массива дочерних узлов этого узла с указанным индексом
Исключения:
ArrayIndexOutOfBoundsException — если index выходит за допустимые границы

getChildCount

public int getChildCount()
Возвращает количество дочерних узлов этого узла.
Определено в:
getChildCount в интерфейсе TreeNode
Возвращает:
значение типа int, указывающее количество дочерних узлов этого узла

getIndex

public int getIndex(TreeNode aChild)
Возвращает индекс указанного дочернего узла в массиве дочерних узлов этого узла. Если указанный узел не является дочерним для этого узла, возвращает -1. Этот метод выполняет линейный поиск и имеет сложность O(n), где n — количество дочерних узлов.
Определено в:
getIndex в интерфейсе TreeNode
Параметры:
aChild — TreeNode, который нужно найти среди дочерних узлов этого узла
Возвращает:
значение типа int, указывающее индекс узла в массиве дочерних узлов этого узла, или -1, если указанный узел не является дочерним для этого узла
Исключения:
IllegalArgumentException — если aChild равен null

children

public Enumeration<TreeNode> children()
Создаёт и возвращает перечисление дочерних узлов этого узла в прямом порядке. Изменение массива дочерних узлов этого узла делает недействительными все перечисления дочерних узлов, созданные до изменения.
Определено в:
children в интерфейсе TreeNode
Возвращает:
перечисление дочерних узлов этого узла

setAllowsChildren

public void setAllowsChildren(boolean allows)
Определяет, разрешено ли этому узлу иметь дочерние узлы. Если allows имеет значение false, все дочерние узлы этого узла удаляются.

Примечание: по умолчанию узлу разрешено иметь дочерние узлы.

Параметры:
allows — true, если этому узлу разрешено иметь дочерние узлы

getAllowsChildren

public boolean getAllowsChildren()
Возвращает true, если этому узлу разрешено иметь дочерние узлы.
Определено в:
getAllowsChildren в интерфейсе TreeNode
Возвращает:
true, если этому узлу разрешено иметь дочерние узлы; в противном случае false

setUserObject

public void setUserObject(Object userObject)
Устанавливает для пользовательского объекта этого узла значение userObject.
Определено в:
setUserObject в интерфейсе MutableTreeNode
Параметры:
userObject — объект Object, содержащий данные этого узла, заданные пользователем
См. также:
  • getUserObject()
  • toString()

getUserObject

public Object getUserObject()
Возвращает пользовательский объект этого узла.
Возвращает:
объект Object, сохранённый пользователем в этом узле
См. также:
  • setUserObject(Object)
  • toString()

removeFromParent

public void removeFromParent()
Удаляет поддерево с корнем в этом узле из дерева, устанавливая для родителя этого узла значение null. Ничего не делает, если этот узел является корнем дерева.
Определено в:
removeFromParent в интерфейсе MutableTreeNode

remove

public void remove(MutableTreeNode aChild)
Удаляет aChild из массива дочерних узлов этого узла, устанавливая для него значение null в качестве родителя.
Определено в:
remove в интерфейсе MutableTreeNode
Параметры:
aChild — дочерний узел, который нужно удалить из этого узла
Исключения:
IllegalArgumentException — если aChild равен null или не является дочерним для этого узла

removeAllChildren

public void removeAllChildren()
Удаляет все дочерние узлы этого узла, устанавливая для их родителей значение null. Если у этого узла нет дочерних узлов, метод ничего не делает.

add

public void add(MutableTreeNode newChild)
Удаляет newChild из его родителя и добавляет его в конец массива дочерних узлов этого узла, делая его дочерним узлом этого узла.
Параметры:
newChild — узел, который нужно добавить в качестве дочернего для этого узла
Исключения:
IllegalArgumentException — если newChild равен null
IllegalStateException — если этому узлу не разрешено иметь дочерние узлы
См. также:
  • insert(MutableTreeNode, int)

isNodeAncestor

public boolean isNodeAncestor(TreeNode anotherNode)
Возвращает true, если anotherNode является предком этого узла: если это сам данный узел, его родитель или предок его родителя. (Обратите внимание, что узел считается предком самого себя.) Если anotherNode равен null, этот метод возвращает false. В худшем случае сложность операции составляет O(h), где h — расстояние от корня до этого узла.
Параметры:
anotherNode — узел, который нужно проверить на роль предка этого узла
Возвращает:
true, если этот узел является потомком anotherNode
См. также:
  • isNodeDescendant(DefaultMutableTreeNode)
  • getSharedAncestor(DefaultMutableTreeNode)

isNodeDescendant

public boolean isNodeDescendant(DefaultMutableTreeNode anotherNode)
Возвращает true, если anotherNode является потомком этого узла: если это сам данный узел, один из его дочерних узлов или потомок одного из его дочерних узлов. Обратите внимание, что узел считается потомком самого себя. Если anotherNode равен null, возвращает false. В худшем случае сложность операции составляет O(h), где h — расстояние от корня до anotherNode.
Параметры:
anotherNode — узел, который нужно проверить на роль потомка этого узла
Возвращает:
true, если этот узел является предком anotherNode
См. также:
  • isNodeAncestor(TreeNode)
  • getSharedAncestor(DefaultMutableTreeNode)

getSharedAncestor

public TreeNode getSharedAncestor(DefaultMutableTreeNode aNode)
Возвращает ближайшего общего предка этого узла и aNode. Возвращает null, если такого предка нет: если этот узел и aNode находятся в разных деревьях или если aNode равен null. Узел считается предком самого себя.
Параметры:
aNode — узел, для которого нужно найти общего предка
Возвращает:
ближайший общий предок этого узла и aNode или null, если его нет
См. также:
  • isNodeAncestor(TreeNode)
  • isNodeDescendant(DefaultMutableTreeNode)

isNodeRelated

public boolean isNodeRelated(DefaultMutableTreeNode aNode)
Возвращает true тогда и только тогда, когда aNode находится в том же дереве, что и этот узел. Возвращает false, если aNode равен null.
Параметры:
aNode — узел, для которого нужно найти общего предка
Возвращает:
true, если aNode находится в том же дереве, что и этот узел; false, если aNode равен null
См. также:
  • getSharedAncestor(DefaultMutableTreeNode)
  • getRoot()

getDepth

public int getDepth()
Возвращает глубину дерева с корнем в этом узле — наибольшее расстояние от этого узла до листа. Если у этого узла нет дочерних узлов, возвращает 0. Эта операция значительно затратнее, чем getLevel(), поскольку фактически требует обхода всего дерева с корнем в этом узле.
Возвращает:
глубину дерева, корнем которого является этот узел
См. также:
  • getLevel()

getLevel

public int getLevel()
Возвращает количество уровней над этим узлом — расстояние от корня до этого узла. Если этот узел является корнем, возвращает 0.
Возвращает:
количество уровней над этим узлом
См. также:
  • getDepth()

getPath

public TreeNode[] getPath()
Возвращает путь от корня к этому узлу. Последний элемент пути — этот узел.
Возвращает:
массив объектов TreeNode, задающий путь, где первый элемент — корень, а последний — этот узел.

getPathToRoot

protected TreeNode[] getPathToRoot(TreeNode aNode, int depth)
Формирует цепочку родителей указанного узла вплоть до корневого узла включительно; исходный узел является последним элементом возвращаемого массива. Длина возвращаемого массива соответствует глубине узла в дереве.
Параметры:
aNode — TreeNode, для которого нужно получить путь
depth — значение типа int, указывающее количество шагов к корню, уже пройденных при рекурсивных вызовах; используется для определения размера возвращаемого массива
Возвращает:
массив TreeNode, задающий путь от корня до указанного узла

getUserObjectPath

public Object[] getUserObjectPath()
Возвращает путь пользовательских объектов от корня к этому узлу. Если у некоторых TreeNode на пути пользовательские объекты равны null, возвращаемый путь будет содержать значения null.
Возвращает:
путь пользовательских объектов от корня к этому узлу

getRoot

public TreeNode getRoot()
Возвращает корень дерева, содержащего этот узел. Корень — это предок, у которого значение родителя равно null.
Возвращает:
корень дерева, содержащего этот узел
См. также:
  • isNodeAncestor(TreeNode)

isRoot

public boolean isRoot()
Возвращает true, если этот узел является корнем дерева. Корень — единственный узел дерева, у которого значение родителя равно null; в каждом дереве ровно один корень.
Возвращает:
true, если этот узел является корнем своего дерева

getNextNode

public DefaultMutableTreeNode getNextNode()
Возвращает узел, следующий за этим узлом при прямом обходе дерева с корнем в этом узле. Возвращает null, если этот узел является последним при обходе. Это неэффективный способ обхода всего дерева; вместо него используйте перечисление.
Возвращает:
узел, следующий за этим узлом при прямом обходе, или null, если этот узел последний
См. также:
  • preorderEnumeration()

getPreviousNode

public DefaultMutableTreeNode getPreviousNode()
Возвращает узел, предшествующий этому узлу при прямом обходе дерева с корнем в этом узле. Возвращает null, если этот узел является первым при обходе — корнем дерева. Это неэффективный способ обхода всего дерева; вместо него используйте перечисление.
Возвращает:
узел, предшествующий этому узлу при прямом обходе, или null, если этот узел первый
См. также:
  • preorderEnumeration()

preorderEnumeration

public Enumeration<TreeNode> preorderEnumeration()
Создаёт и возвращает перечисление, выполняющее прямой обход поддерева с корнем в этом узле. Метод nextElement() перечисления возвращает этот узел первым.

Изменение дерева путём вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до изменения.

Возвращает:
перечисление для прямого обхода дерева
См. также:
  • postorderEnumeration()

postorderEnumeration

public Enumeration<TreeNode> postorderEnumeration()
Создаёт и возвращает перечисление, выполняющее обратный обход поддерева с корнем в этом узле. Метод nextElement() перечисления первым возвращает самый левый листовой узел. Это эквивалентно обходу в глубину.

Изменение дерева путём вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до изменения.

Возвращает:
перечисление для обратного обхода дерева
См. также:
  • depthFirstEnumeration()
  • preorderEnumeration()

breadthFirstEnumeration

public Enumeration<TreeNode> breadthFirstEnumeration()
Создаёт и возвращает перечисление, выполняющее обход поддерева с корнем в этом узле в ширину. Метод nextElement() перечисления возвращает этот узел первым.

Изменение дерева путём вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до изменения.

Возвращает:
перечисление для обхода дерева в ширину
См. также:
  • depthFirstEnumeration()

depthFirstEnumeration

public Enumeration<TreeNode> depthFirstEnumeration()
Создаёт и возвращает перечисление, выполняющее обход поддерева с корнем в этом узле в глубину. Метод nextElement() перечисления первым возвращает самый левый листовой узел. Это эквивалентно обратному обходу.

Изменение дерева путём вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до изменения.

Возвращает:
перечисление для обхода дерева в глубину
См. также:
  • breadthFirstEnumeration()
  • postorderEnumeration()

pathFromAncestorEnumeration

public Enumeration<TreeNode> pathFromAncestorEnumeration(TreeNode ancestor)
Создаёт и возвращает перечисление, проходящее по пути от ancestor к этому узлу. Метод nextElement() перечисления сначала возвращает ancestor, затем дочерний узел ancestor, являющийся предком этого узла, и так далее, а в конце возвращает этот узел. Создание перечисления имеет сложность O(m), где m — количество узлов между этим узлом и ancestor включительно. Каждый вызов nextElement() имеет сложность O(1).

Изменение дерева путём вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до изменения.

Параметры:
ancestor — узел, с которого начинается перечисление
Возвращает:
перечисление для прохождения по пути от предка этого узла до самого узла
Исключения:
IllegalArgumentException — если ancestor не является предком этого узла
См. также:
  • isNodeAncestor(TreeNode)
  • isNodeDescendant(DefaultMutableTreeNode)

isNodeChild

public boolean isNodeChild(TreeNode aNode)
Возвращает true, если aNode является дочерним узлом этого узла. Если aNode равен null, этот метод возвращает false.
Параметры:
aNode — узел, для которого нужно определить, является ли он дочерним
Возвращает:
true, если aNode является дочерним узлом этого узла; false, если aNode равен null

getFirstChild

public TreeNode getFirstChild()
Возвращает первый дочерний узел этого узла. Если у этого узла нет дочерних узлов, выбрасывает NoSuchElementException.
Возвращает:
первый дочерний узел этого узла
Исключения:
NoSuchElementException — если у этого узла нет дочерних узлов

getLastChild

public TreeNode getLastChild()
Возвращает последний дочерний узел этого узла. Если у этого узла нет дочерних узлов, выбрасывает NoSuchElementException.
Возвращает:
последний дочерний узел этого узла
Исключения:
NoSuchElementException — если у этого узла нет дочерних узлов

getChildAfter

public TreeNode getChildAfter(TreeNode aChild)
Возвращает дочерний узел из массива дочерних узлов этого узла, непосредственно следующий за aChild, который должен быть дочерним узлом этого узла. Если aChild является последним дочерним узлом, возвращает null. Этот метод выполняет линейный поиск aChild среди дочерних узлов этого узла и имеет сложность O(n), где n — количество дочерних узлов; для обхода всего массива дочерних узлов используйте перечисление.
Параметры:
aChild — дочерний узел, после которого нужно найти следующий дочерний узел
Возвращает:
дочерний узел этого узла, непосредственно следующий за aChild
Исключения:
IllegalArgumentException — если aChild равен null или не является дочерним для этого узла
См. также:
  • children

getChildBefore

public TreeNode getChildBefore(TreeNode aChild)
Возвращает дочерний узел из массива дочерних узлов этого узла, непосредственно предшествующий aChild, который должен быть дочерним узлом этого узла. Если aChild является первым дочерним узлом, возвращает null. Этот метод выполняет линейный поиск aChild среди дочерних узлов этого узла и имеет сложность O(n), где n — количество дочерних узлов.
Параметры:
aChild — дочерний узел, перед которым нужно найти предыдущий дочерний узел
Возвращает:
дочерний узел этого узла, непосредственно предшествующий aChild
Исключения:
IllegalArgumentException — если aChild равен null или не является дочерним для этого узла

isNodeSibling

public boolean isNodeSibling(TreeNode anotherNode)
Возвращает true, если anotherNode является соседним узлом этого узла (имеет того же родителя). Узел является соседним узлом самому себе. Если anotherNode равен null, возвращает false.
Параметры:
anotherNode — узел, который нужно проверить на роль соседнего для этого узла
Возвращает:
true, если anotherNode является соседним узлом этого узла

getSiblingCount

public int getSiblingCount()
Возвращает количество соседних узлов этого узла. Узел является соседним узлом самому себе (если у него нет родителя или соседних узлов, этот метод возвращает 1).
Возвращает:
количество соседних узлов этого узла

getNextSibling

public DefaultMutableTreeNode getNextSibling()
Возвращает следующий соседний узел этого узла в массиве дочерних узлов родителя. Возвращает null, если у этого узла нет родителя или если он является последним дочерним узлом родителя. Этот метод выполняет линейный поиск со сложностью O(n), где n — количество дочерних узлов; для обхода всего массива используйте перечисление дочерних узлов родителя.
Возвращает:
соседний узел, непосредственно следующий за этим узлом
См. также:
  • children

getPreviousSibling

public DefaultMutableTreeNode getPreviousSibling()
Возвращает предыдущий соседний узел этого узла в массиве дочерних узлов родителя. Возвращает null, если у этого узла нет родителя или он является первым дочерним узлом родителя. Этот метод выполняет линейный поиск сложности O(n), где n — количество дочерних узлов.
Возвращает:
соседний узел, непосредственно предшествующий этому узлу

isLeaf

public boolean isLeaf()
Возвращает true, если у этого узла нет дочерних узлов. Чтобы отличить узлы без дочерних узлов от узлов, которые не могут иметь дочерних узлов (например, отличить файлы от пустых каталогов), используйте этот метод вместе с getAllowsChildren
Указано в:
isLeaf в интерфейсе TreeNode
Возвращает:
true, если у этого узла нет дочерних узлов
См. также:
  • getAllowsChildren()

getFirstLeaf

public DefaultMutableTreeNode getFirstLeaf()
Находит и возвращает первый листовой узел, являющийся потомком этого узла, — сам этот узел или первый листовой узел первого дочернего узла. Если этот узел является листовым, возвращает его.
Возвращает:
первый листовой узел в поддереве с корнем в этом узле
См. также:
  • isLeaf()
  • isNodeDescendant(DefaultMutableTreeNode)

getLastLeaf

public DefaultMutableTreeNode getLastLeaf()
Находит и возвращает последний листовой узел, являющийся потомком этого узла, — сам этот узел или последний листовой узел последнего дочернего узла. Если этот узел является листовым, возвращает его.
Возвращает:
последний листовой узел в поддереве с корнем в этом узле
См. также:
  • isLeaf()
  • isNodeDescendant(DefaultMutableTreeNode)

getNextLeaf

public DefaultMutableTreeNode getNextLeaf()
Возвращает листовой узел, следующий за этим узлом, или null, если этот узел является последним листовым узлом в дереве.

В этой реализации интерфейса MutableNode данная операция крайне неэффективна. Чтобы определить следующий узел, этот метод сначала выполняет линейный поиск в списке дочерних узлов родителя, чтобы найти текущий узел.

Такая реализация подходит для короткого обхода, начинающегося с известной позиции. Однако для обхода всех листовых узлов дерева следует использовать depthFirstEnumeration для перечисления узлов дерева и применять isLeaf к каждому узлу, чтобы определить, какие из них являются листовыми.

Возвращает:
следующий после этого узла листовой узел
См. также:
  • depthFirstEnumeration()
  • isLeaf()

getPreviousLeaf

public DefaultMutableTreeNode getPreviousLeaf()
Возвращает листовой узел, предшествующий этому узлу, или null, если этот узел является первым листовым узлом в дереве.

В этой реализации интерфейса MutableNode данная операция крайне неэффективна. Чтобы определить предыдущий узел, этот метод сначала выполняет линейный поиск в списке дочерних узлов родителя, чтобы найти текущий узел.

Такая реализация подходит для короткого обхода, начинающегося с известной позиции. Однако для обхода всех листовых узлов дерева следует использовать depthFirstEnumeration для перечисления узлов дерева и применять isLeaf к каждому узлу, чтобы определить, какие из них являются листовыми.

Возвращает:
листовой узел, предшествующий этому узлу
См. также:
  • depthFirstEnumeration()
  • isLeaf()

getLeafCount

public int getLeafCount()
Возвращает общее количество листовых узлов, являющихся потомками этого узла. Если этот узел является листовым, возвращает 1. Сложность этого метода — O(n), где n — количество потомков этого узла.
Возвращает:
количество листовых узлов под этим узлом
См. также:
  • isNodeAncestor(TreeNode)

toString

public String toString()
Возвращает результат вызова toString() для пользовательского объекта этого узла или пустую строку, если у узла нет пользовательского объекта.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление объекта
См. также:
  • getUserObject()

clone

public Object clone()
Переопределен, чтобы сделать метод clone общедоступным. Возвращает поверхностную копию этого узла; у нового узла нет родителя или дочерних узлов, и он ссылается на тот же пользовательский объект, если он есть.
Переопределяет:
clone в классе Object
Возвращает:
копию этого узла
См. также:
  • Cloneable

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API