Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:获得后代树节点的第二高祖先_Java_Treemodel - Fatal编程技术网

Java:获得后代树节点的第二高祖先

Java:获得后代树节点的第二高祖先,java,treemodel,Java,Treemodel,使用DefaultTreeModel,defaultmutbletreenode的getRoot返回它的最高祖先,但是您如何向下一代返回它的第二高祖先呢 root - ancestor 1 - some parent - some child - ancestor 2 - some parent - another parent - some child 所以如何找到祖先1,给定这个分支中的一些子节点,每个分支的深度对于根下的每个祖先节点都是不同的 我需要从某个

使用DefaultTreeModel,defaultmutbletreenode的getRoot返回它的最高祖先,但是您如何向下一代返回它的第二高祖先呢

root
 - ancestor 1
  - some parent
   - some child
 - ancestor 2
  - some parent
   - another parent
    - some child
所以如何找到祖先1,给定这个分支中的一些子节点,每个分支的深度对于根下的每个祖先节点都是不同的

我需要从某个子级遍历到祖先1,并且对于更深的分支,给定某个子级,它将找到祖先2。

尝试以下方法:

TreeNode[] nodeArray = tree.getPathToRoot(nodeInQuestion);
TreeNode secondFromRoot;

if ((nodeArray != null) && // I'm not sure this can actually happen.
    (nodeArray.length > 1)) // current node is not the root node.
{
   secondFromRoot = nodeArray[1];
}
else
{
   ... decide what makes sense here.
}