E - 树节点存放的类型public class SimpleTreeNode<E> extends java.lang.Object implements java.lang.Cloneable, TreeNode<E>
树节点.
- 修改人 zhongj 构造参数已经确定必须有id,去掉setId()方法
- 修改人 zhongj 去掉childNodes的setter方法,用appendChildNodes()来代替
- 修改人 zhongj 去掉isLeafNode属性,通过childsize来判断
- 修改人 zhongj 加入clone方法,实现深度复制
| 限定符和类型 | 字段和说明 |
|---|---|
protected static int |
ROOT_DEPTH
根节点的层级
|
| 构造器和说明 |
|---|
SimpleTreeNode(java.lang.String id) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addChildNode(TreeNode<E> childNode)
添加子节点
|
void |
addChildNodes(java.util.List<TreeNode<E>> childNodes)
批量添加子节点
|
void |
addChildNodes(TreeNode<E>... childNodes)
批量添加子节点
|
void |
changeDepth(int depth)
改变当前节点的depth,级联改变子孙节点
|
TreeNode<E> |
clone()
返回一个复制的节点,迭代复制所有节点
|
TreeNode<E> |
cloneAsRoot()
复制节点并改变为根节点
|
void |
each(NodeExecutor<TreeNode<E>> executor)
该节点及其所有子节点使用传入执行器进行操作
深度优先
|
boolean |
equals(java.lang.Object object) |
TreeNode<E> |
findProgeny(java.lang.String progenyId)
从子孙节点中找到指定id的节点,并将其返回
|
TreeNode<E> |
findProgeny(TreeNode<E> progeny)
从子孙节点中找到指定节点,并将其返回.
|
TreeNode<E> |
findTreeNode(java.lang.String nodeId)
从子孙节点中找到指定id的节点,并将其返回(包含自身)
|
TreeNode<E> |
findTreeNode(TreeNode<E> node)
从子孙节点中找到指定节点,并将其返回(包含自身)
|
TreeNode<E> |
findTreeNode(TreeNodeMatcher<TreeNode<E>> matcher)
从子孙节点中找到第一个匹配的节点,并将其返回(包含自身)
|
java.util.List<TreeNode<E>> |
getAncestors()
返回当前节点的所有祖先节点.
|
java.util.List<TreeNode<E>> |
getChildNodes()
返回直属下级
|
int |
getChildSize()
返回子节点的数量
|
int |
getDepth()
返回depth
|
java.util.List<TreeNode<E>> |
getEveryNode()
返回该节点及其所有子孙节点(包含该节点)
|
TreeNode<E> |
getFirstChild()
返回第一个子节点
|
java.lang.String |
getId()
获取唯一标识
|
TreeNode<E> |
getLastChild()
返回最后一个子节点
|
TreeNode<E> |
getNextSibling()
返回相邻的下一个节点
|
E |
getNodeObject()
返回nodeObject
|
TreeNode<E> |
getParent()
返回上级
|
int |
getPosition()
返回自己的位置
|
TreeNode<E> |
getPreviousSibling()
返回相邻的上一个节点
|
java.util.List<TreeNode<E>> |
getProgenys()
返回该节点下的所有子孙节点(包含下级的下级,不包含该节点).
|
boolean |
hasAncestor(TreeNode<E> ancestor)
判断传入节点是否是当前节点的祖先节点,等价
TreeNodeModel.isProgeny(TreeNodeModel). |
boolean |
hasChildNode(TreeNode<E> childNode)
返回传入节点是否是当前节点的子节点,等价
TreeNodeModel.isParent(TreeNodeModel). |
int |
hashCode() |
boolean |
hasProgeny(TreeNode<E> progeny)
判断传入节点是否是当前节点的后裔,等价
TreeNodeModel.isAncestor(TreeNodeModel). |
int |
indexOf(TreeNode<E> childNode)
返回指定子节点的序列值(index)
|
void |
insertChildNode(TreeNode<E> childNode,
int index)
在指定位置插入子节点
|
void |
insertChildNodeAfter(TreeNode<E> childNode,
TreeNode<E> refChildNode)
在指定节点(refChildNode)之前插入(insertChildNode)
如果找不到refChildNode就插入在最后
|
void |
insertChildNodeBefore(TreeNode<E> childNode,
TreeNode<E> refChildNode)
在指定节点(refChildNode)之前插入(insertChildNode)
如果找不到refChildNode就插入在最后
|
boolean |
isAncestor(TreeNode<E> progeny)
判断当前节点是否是传入节点的祖先节点,等价
TreeNodeModel.hasProgeny(TreeNodeModel). |
boolean |
isChildNode(TreeNode<E> parentNode)
判断当前节点是否是传入节点的子节点
|
boolean |
isFirst()
当前节点是否是第一个节点.
|
boolean |
isLast()
当前节点是否是最后一个节点.
|
boolean |
isLeaf()
返回是否是叶节点(没有子节点)
|
boolean |
isParent(TreeNode<E> childNode)
返回当前节点是否是传入节点的父节点,等价
TreeNodeModel.hasChildNode(TreeNodeModel). |
boolean |
isProgeny(TreeNode<E> ancestor)
判断当前节点是否是传入节点的后裔,等价
TreeNodeModel.hasAncestor(TreeNodeModel). |
boolean |
isRoot()
返回是否是根
|
void |
mergeChild(TreeNode<E> child)
如果传入节点存在,替换节点,不存在就添加
|
void |
remove()
将当前节点从其父节点移出
|
void |
removeChildNode(TreeNode<E> childNode)
移出子节点
|
void |
removeChildNodes()
移出所有子节点
|
void |
replaceChild(TreeNode<E> newChild,
TreeNode<E> oldChild)
替换指定节点
|
void |
setNodeObject(E nodeObject)
设置节点存放的对象
|
void |
setParentNode(TreeNode<E> parentNode)
设置parentNode
|
void |
sort(java.util.Comparator<TreeNode<E>> comparator)
通过传入的指定比较器对该节点的子节点进行排序
|
void |
sort(java.util.Comparator<TreeNode<E>> comparator,
boolean containProgeny)
通过传入的指定比较器对该节点的子节点进行排序.
|
java.lang.String |
toString() |
protected static final int ROOT_DEPTH
public java.util.List<TreeNode<E>> getAncestors()
getAncestors 在接口中 TreeNodeModel<TreeNode<E>>public boolean hasAncestor(TreeNode<E> ancestor)
TreeNodeModel.isProgeny(TreeNodeModel).
即 父节点,父节点的父节点...一直到根节点hasAncestor 在接口中 TreeNodeModel<TreeNode<E>>ancestor - 查找节点public boolean isProgeny(TreeNode<E> ancestor)
TreeNodeModel.hasAncestor(TreeNodeModel).
即 子节点,子节点的子节点....遍历整个节点树isProgeny 在接口中 TreeNodeModel<TreeNode<E>>ancestor - 查找节点public java.util.List<TreeNode<E>> getEveryNode()
getEveryNode 在接口中 TreeNodeModel<TreeNode<E>>public java.util.List<TreeNode<E>> getProgenys()
getProgenys 在接口中 TreeNodeModel<TreeNode<E>>public boolean hasProgeny(TreeNode<E> progeny)
TreeNodeModel.isAncestor(TreeNodeModel).
即 子节点,子节点的子节点....遍历整个节点树hasProgeny 在接口中 TreeNodeModel<TreeNode<E>>progeny - 查找节点public boolean isAncestor(TreeNode<E> progeny)
TreeNodeModel.hasProgeny(TreeNodeModel).
即 父节点,父节点的父节点...一直到根节点isAncestor 在接口中 TreeNodeModel<TreeNode<E>>progeny - 查找节点public TreeNode<E> findProgeny(TreeNode<E> progeny)
findProgeny 在接口中 TreeNodeModel<TreeNode<E>>progeny - 查找节点public TreeNode<E> findProgeny(java.lang.String progenyId)
findProgeny 在接口中 TreeNodeModel<TreeNode<E>>progenyId - 查找节点IDpublic TreeNode<E> findTreeNode(TreeNodeMatcher<TreeNode<E>> matcher)
findTreeNode 在接口中 TreeNodeModel<TreeNode<E>>matcher - 匹配器public TreeNode<E> findTreeNode(TreeNode<E> node)
findTreeNode 在接口中 TreeNodeModel<TreeNode<E>>node - 查找节点public TreeNode<E> findTreeNode(java.lang.String nodeId)
findTreeNode 在接口中 TreeNodeModel<TreeNode<E>>nodeId - 超找节点IDpublic void each(NodeExecutor<TreeNode<E>> executor)
each 在接口中 TreeNodeModel<TreeNode<E>>executor - 执行器public void changeDepth(int depth)
depth - 层级public int indexOf(TreeNode<E> childNode)
indexOf 在接口中 TreeNodeModel<TreeNode<E>>childNode - 子节点public int getPosition()
getPosition 在接口中 TreeNodeModel<TreeNode<E>>public boolean hasChildNode(TreeNode<E> childNode)
TreeNodeModel.isParent(TreeNodeModel).hasChildNode 在接口中 TreeNodeModel<TreeNode<E>>childNode - 子节点public boolean isParent(TreeNode<E> childNode)
TreeNodeModel.hasChildNode(TreeNodeModel).isParent 在接口中 TreeNodeModel<TreeNode<E>>childNode - 子节点public boolean isChildNode(TreeNode<E> parentNode)
isChildNode 在接口中 TreeNodeModel<TreeNode<E>>parentNode - 父节点public int getChildSize()
getChildSize 在接口中 TreeNodeModel<TreeNode<E>>public void addChildNode(TreeNode<E> childNode)
addChildNode 在接口中 TreeNodeModel<TreeNode<E>>childNode - 子节点public void addChildNodes(TreeNode<E>... childNodes)
addChildNodes 在接口中 TreeNodeModel<TreeNode<E>>childNodes - 子节点public void addChildNodes(java.util.List<TreeNode<E>> childNodes)
addChildNodes 在接口中 TreeNodeModel<TreeNode<E>>childNodes - 子节点public void insertChildNode(TreeNode<E> childNode, int index)
insertChildNode 在接口中 TreeNodeModel<TreeNode<E>>childNode - 子节点index - 插入位置public void insertChildNodeBefore(TreeNode<E> childNode, TreeNode<E> refChildNode)
insertChildNodeBefore 在接口中 TreeNodeModel<TreeNode<E>>childNode - 子节点refChildNode - 插入参考节点public void insertChildNodeAfter(TreeNode<E> childNode, TreeNode<E> refChildNode)
insertChildNodeAfter 在接口中 TreeNodeModel<TreeNode<E>>childNode - 子节点refChildNode - 插入参考节点public void removeChildNode(TreeNode<E> childNode)
removeChildNode 在接口中 TreeNodeModel<TreeNode<E>>childNode - 子节点public void removeChildNodes()
removeChildNodes 在接口中 TreeNodeModel<TreeNode<E>>public void replaceChild(TreeNode<E> newChild, TreeNode<E> oldChild)
replaceChild 在接口中 TreeNodeModel<TreeNode<E>>newChild - 新节点oldChild - 待替换节点public void mergeChild(TreeNode<E> child)
mergeChild 在接口中 TreeNodeModel<TreeNode<E>>child - 子节点public void remove()
remove 在接口中 TreeNodeModel<TreeNode<E>>public TreeNode<E> getFirstChild()
getFirstChild 在接口中 TreeNodeModel<TreeNode<E>>public TreeNode<E> getLastChild()
getLastChild 在接口中 TreeNodeModel<TreeNode<E>>public TreeNode<E> getNextSibling()
getNextSibling 在接口中 TreeNodeModel<TreeNode<E>>public TreeNode<E> getPreviousSibling()
getPreviousSibling 在接口中 TreeNodeModel<TreeNode<E>>public boolean isFirst()
isFirst 在接口中 TreeNodeModel<TreeNode<E>>public boolean isLast()
isLast 在接口中 TreeNodeModel<TreeNode<E>>public void sort(java.util.Comparator<TreeNode<E>> comparator)
sort 在接口中 TreeNodeModel<TreeNode<E>>comparator - 比较器public void sort(java.util.Comparator<TreeNode<E>> comparator, boolean containProgeny)
sort 在接口中 TreeNodeModel<TreeNode<E>>comparator - 比较器containProgeny - 是否包含子孙节点public TreeNode<E> clone()
clone 在接口中 TreeNodeModel<TreeNode<E>>clone 在类中 java.lang.Objectpublic TreeNode<E> cloneAsRoot()
复制节点并改变为根节点
cloneAsRoot 在接口中 TreeNodeModel<TreeNode<E>>public boolean equals(java.lang.Object object)
equals 在类中 java.lang.Objectpublic int hashCode()
hashCode 在类中 java.lang.Objectpublic java.lang.String toString()
toString 在类中 java.lang.Objectpublic E getNodeObject()
getNodeObject 在接口中 TreeNode<E>public void setNodeObject(E nodeObject)
设置节点存放的对象
setNodeObject 在接口中 TreeNode<E>nodeObject - 对象public boolean isRoot()
返回是否是根
isRoot 在接口中 TreeNodeModel<TreeNode<E>>public boolean isLeaf()
返回是否是叶节点(没有子节点)
isLeaf 在接口中 TreeNodeModel<TreeNode<E>>public java.util.List<TreeNode<E>> getChildNodes()
返回直属下级
getChildNodes 在接口中 TreeNodeModel<TreeNode<E>>public int getDepth()
getDepth 在接口中 TreeNodeModel<TreeNode<E>>public java.lang.String getId()
获取唯一标识
getId 在接口中 TreeNodeModel<TreeNode<E>>