求解:多层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;
}
可以参考上面这种方式遍历,我遍历的label,可以换成你的title,基本是一样的;
遍历?或者叫后端只传title数组
public static void main(String[] args){
findChild(lstParent);
}
private void findChild(List lst){
if(lst.children !=null)
{
//其他要处理的逻辑
return findChild(lst.children);
}
}