关于#java#的问题:求解:多层list 怎么固定取里面的title

img

求解:多层list 怎么固定取里面的title,里面的children又是一个list 并且每个list里面都可能包含children,该怎么递归取地面固定的title

@Data
public class Tree {

    private String id;

    private String icon; //图标

    private String label; //名称

    private Set<Tree> children = new HashSet<>(); //子节点

    private Object data; //原始数据

    private long count; //红点个数

    private boolean checked = false; //默认选中


}


 @Test
    void treeTest(){
        List<String> labels = new ArrayList<>(); //返回所有的树结构的label
        List<Tree> trees = permissionService.getPermissionTree(null); //树结构的集合
        for (Tree tree : trees) {
            labels.addAll(findChildren(tree));  //查询树结构的子节点
        }
        
    }
    /**
     * @description:  递归查询子节点
     * @param: tree
     * @return: java.util.List<java.lang.String>
     * @author
     * @date: 2021/9/7
     */
    public List<String> findChildren(Tree tree){
        List<String> labels = new ArrayList<>();
        labels.add(tree.getLabel());
        for (Tree children :  tree.getChildren()) {
            List<String> children_label =  findChildren(children); //递归查询
            labels.addAll(children_label);
        }
        return labels;
    }

img

img

可以参考上面这种方式遍历,我遍历的label,可以换成你的title,基本是一样的;

遍历?或者叫后端只传title数组

public static void main(String[] args){
findChild(lstParent);
}

private void findChild(List lst){
if(lst.children !=null)
{
//其他要处理的逻辑
return findChild(lst.children);
}

}