尝试搜索树中的节点/节点并获取其后代。
我的班级
public class TreeNodeDTO {
/** The id. */
private String id;
/** The title. */
private String title;
/** The children. */
private List<TreeNodeDTO> children;
//setters and getters
}
我可以通过以下算法
找到后代 public ArrayList< TreeNodeDTO > search( String search ) {
ArrayList< TreeNodeDTO > list = new ArrayList< TreeNodeDTO >(), temp;
if ( !this.title.equals( "Root" ) ) {
list.add( this );
}
if ( getTitle().equals( search ) ) {
return list;
}
if ( children != null )
for ( TreeNodeDTO n : children ) {
temp = n.search( search );
if ( temp != null ) {
list.addAll( temp );
return list;
}
}
return new ArrayList<>();
}
但它返回从父到子的所有路径,例如,如果此类填充了以下树结构:
Data
|
Workflows
|
Elements
|
Export
当我搜索&#34;导出&#34;
时它返回
Data
|
Workflows
|
Elements
|
Export
和
Workflows
|
Elements
|
Export
和
Elements
|
Export
虽然我只需要以下结果
Data
|
Workflows
|
Elements
|
Export