欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java遞歸生成樹型結(jié)構(gòu)方式

 更新時(shí)間:2024年12月17日 16:41:57   作者:青艾_XY  
文章介紹了如何使用Java遞歸生成樹形結(jié)構(gòu),包括獲取數(shù)據(jù)、生成樹形結(jié)構(gòu)、查詢子節(jié)點(diǎn)等步驟,作者分享了自己的經(jīng)驗(yàn),希望能對(duì)大家有所幫助

java遞歸生成樹

1.獲取數(shù)據(jù)

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

2.生成樹形結(jié)構(gòu)

public List<TreeClassifyRespVO> getClassifyTree(List<TreeClassifyRespVO> childClassifyResp) {
    // 返回的樹形數(shù)據(jù)
    List<TreeClassifyRespVO> tree = new ArrayList<TreeClassifyRespVO>();
    // 第一次遍歷
    for (TreeClassifyRespVO treeClassify : childClassifyResp) {
        // 找到根節(jié)點(diǎn),這里我的根節(jié)點(diǎn)的pid為0
        if (treeClassify.getPid()==0) {
            tree.add(findChild(treeClassify, childClassifyResp));
        }
    }
    return tree;
}

3.查詢子節(jié)點(diǎn)

private TreeClassifyRespVO findChild(TreeClassifyRespVO treeClassify, List<TreeClassifyRespVO> list) {
    // 定義list用于存儲(chǔ)子節(jié)點(diǎn)
    List<TreeClassifyRespVO> children = new ArrayList<TreeClassifyRespVO>();
    for (TreeClassifyRespVO node : list) {
        // 找到根節(jié)點(diǎn),這里我的根節(jié)點(diǎn)的pid為0
        if (node.getPid().equals(treeClassify.getId())) {
            // 調(diào)用遞歸
            children.add(findChild(node, list));
        }
    }
    treeClassify.setChildren(children);
    return treeClassify;
}

4.效果

總結(jié)以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論