java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java递归生成树型结构

java递归生成树型结构方式

作者:青艾_XY

文章介绍了如何使用Java递归生成树形结构,包括获取数据、生成树形结构、查询子节点等步骤,作者分享了自己的经验,希望能对大家有所帮助

java递归生成树

1.获取数据

public List<TreeClassifyRespVO> getTreeClassifyList(ClassifyPageReqVO reqVO) {
    List<ClassifyDO> classifyList = classifyMapper.selectList(reqVO);
    List<TreeClassifyRespVO> childClassifyResp = ClassifyConvert.INSTANCE.convertList01(classifyList);
    return getClassifyTree(childClassifyResp);
}

2.生成树形结构

public List<TreeClassifyRespVO> getClassifyTree(List<TreeClassifyRespVO> childClassifyResp) {
    // 返回的树形数据
    List<TreeClassifyRespVO> tree = new ArrayList<TreeClassifyRespVO>();
    // 第一次遍历
    for (TreeClassifyRespVO treeClassify : childClassifyResp) {
        // 找到根节点,这里我的根节点的pid为0
        if (treeClassify.getPid()==0) {
            tree.add(findChild(treeClassify, childClassifyResp));
        }
    }
    return tree;
}

3.查询子节点

private TreeClassifyRespVO findChild(TreeClassifyRespVO treeClassify, List<TreeClassifyRespVO> list) {
    // 定义list用于存储子节点
    List<TreeClassifyRespVO> children = new ArrayList<TreeClassifyRespVO>();
    for (TreeClassifyRespVO node : list) {
        // 找到根节点,这里我的根节点的pid为0
        if (node.getPid().equals(treeClassify.getId())) {
            // 调用递归
            children.add(findChild(node, list));
        }
    }
    treeClassify.setChildren(children);
    return treeClassify;
}

4.效果

总结以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文