【发布时间】:2018-04-06 05:42:23
【问题描述】:
我正在尝试根据搜索查询搜索子节点。我还需要将他们的父母(路径)保留在树中。我在迭代和过滤填充了父母和孩子的完整树时遇到了困难。搜索查询将匹配以下类的 nodeName 属性。社区中的某个人能够帮助我编写一个搜索节点并保持其子路径完整但不保留父路径的代码。
我的 TreeNode 类
public class TreeNodeDTO {
/** The id. */
private String id;
/** The nodeName. */
private String nodeName;
/** The children. */
private List<TreeNodeDTO> children;
//setters and getters
}
以及搜索节点并将其子节点保留在路径中的搜索方法。
public List< TreeNodeDTO > searchObject( String search ) {
if ( getNodeName() != null && getNodeName().toLowerCase().contains( search.toLowerCase() ) ) {
return Arrays.asList( this );
}
ArrayList< TreeNodeDTO > resultList = new ArrayList<>();
if ( getChildren() != null ) {
for ( TreeNodeDTO child : getChildren() ) {
resultList.addAll( child.searchObject( search ) );
}
}
return resultList;
}
Above 方法返回下面的树以供后续搜索
搜索查询:“TestProject”
TestProject
|
TestChild
我正在努力获得以下形式的结果:
Project
|
SubProject
|
DataProject
|
TestProject
|
TestChild
【问题讨论】:
-
您能否添加作为输入提供的完整树的结构?
-
@vastal 您的意思是已填充的完整树?如果是,那么在项目节点下还有另一个名为“testDemoProject”的子项目,并且它还有更多节点。但我需要像上面这样的过滤结果。
标签: java