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

java遞歸生成樹型結構方式

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

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.生成樹形結構

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

3.查詢子節(jié)點

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

4.效果

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

相關文章

  • mysql數(shù)據(jù)庫忘記密碼時如何修改

    mysql數(shù)據(jù)庫忘記密碼時如何修改

    本文主要介紹了mysql數(shù)據(jù)庫忘記密碼時如何修改的步驟方法,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • 如何利用SpringAOP的返回通知處理數(shù)據(jù)加密返回

    如何利用SpringAOP的返回通知處理數(shù)據(jù)加密返回

    這篇文章主要介紹了如何利用SpringAOP的返回通知處理數(shù)據(jù)加密返回,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2024-12-12
  • 史上最簡單的MyBatis動態(tài)SQL入門示例代碼

    史上最簡單的MyBatis動態(tài)SQL入門示例代碼

    動態(tài)sql,可以根據(jù)用戶對字段選擇和輸入,動態(tài)生成一條sql執(zhí)行。接下來通過本文給大家分享MyBatis動態(tài)SQL入門示例代碼,一起看看吧
    2017-03-03
  • SpringBoot整合DeepSeek實現(xiàn)AI對話功能

    SpringBoot整合DeepSeek實現(xiàn)AI對話功能

    本文介紹了如何在SpringBoot項目中整合DeepSeek API和本地私有化部署DeepSeekR1模型,通過SpringAI框架簡化了人工智能模型的集成,感興趣的小伙伴跟著小編一起來看看吧
    2025-02-02
  • Java JDK8新增Optional工具類講解

    Java JDK8新增Optional工具類講解

    這篇文章主要介紹了Java JDK8新增Optional工具類講解,本文通過老版和jdk8對比對null的處理方式,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-07-07
  • SpringBoot2零基礎到精通之數(shù)據(jù)庫專項精講

    SpringBoot2零基礎到精通之數(shù)據(jù)庫專項精講

    SpringBoot是一種整合Spring技術棧的方式(或者說是框架),同時也是簡化Spring的一種快速開發(fā)的腳手架,本篇我們來學習如何連接數(shù)據(jù)庫進行操作
    2022-03-03
  • 詳解Java類動態(tài)加載和熱替換

    詳解Java類動態(tài)加載和熱替換

    本文主要介紹類加載器、自定義類加載器及類的加載和卸載等內容,并舉例介紹了Java類的熱替換。
    2021-05-05
  • java騰訊AI人臉對比對接代碼實例

    java騰訊AI人臉對比對接代碼實例

    這篇文章主要介紹了java騰訊AI人臉對比對接,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • 使用VS?Code進行java開發(fā)與調試的圖文教程

    使用VS?Code進行java開發(fā)與調試的圖文教程

    這篇文章主要介紹了如何在計算機上安裝JDK、VSCode以及Java擴展包,并詳細說明了配置Java運行環(huán)境的過程,還展示了如何在VSCode中新建一個Java項目,需要的朋友可以參考下
    2025-02-02
  • java關于String.split("|")的使用方式

    java關于String.split("|")的使用方式

    這篇文章主要介紹了java關于String.split("|")的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評論