首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java:如何检查字符串的整个JTree路径

Java:如何检查字符串的整个JTree路径
EN

Stack Overflow用户
提问于 2012-09-11 18:12:19
回答 1查看 2.1K关注 0票数 1

我已经看了一段时间了,但我似乎真的在网上找不到太多关于它的信息。我有一个JTree和一个字符串列表。我希望只搜索JTree的最低级别(因此不是树中的每个节点都会被搜索,只搜索最低的节点),如果我要搜索的字符串出现在最低节点的路径中,则将该字符串添加到列表中

像这样的东西

代码语言:javascript
复制
public List<String> searchLowestNodes(List<String> wordsToSearchFor){
    List<String> matches = new ArrayList<>;
    for(String word: wordsToSearchFor){
        // i do not know how to get the lowest node for each path
        if(path.contains(word)){
            matches.add(word);
        }
        //keep looping for all paths
     }
     return matches;
}

有谁知道如何做到这一点吗?

编辑:树示例

代码语言:javascript
复制
Root
-assignment1
--paul
---example.java
--john
---example.java
-assignment2
--a2
---sean
----assignment.java
---mark
----assignment.java

因此,对于下面的树,它应该只在以下路径中搜索单词

代码语言:javascript
复制
root>assignment1>paul>example.java
root>assignment1>john>example.java
root>assignment2>a2>sean>assignment.java
root>assignment2>a2>mark>assignment.java

我不想添加

代码语言:javascript
复制
root>assignment1
root>assignment1>paul
...
EN

回答 1

Stack Overflow用户

发布于 2012-09-11 18:17:50

首先,获取树模型的根:

代码语言:javascript
复制
rootNode = (DefaultMutableTreeNode)tree.getModel().getRoot()

现在有了这个节点,遍历整个树并将叶子存储在您自己的数据结构中。您可以使用rootNode.depthFirstEnumeration()遍历树,遍历枚举器并检查每个元素的element.isLeaf()

在拥有所有叶子之后,获取它们的路径:element.getPath()。这为您提供了一个从根到叶节点的节点数组。

现在你可以用它们做任何你想做的事情。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12367432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档