最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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用于存儲子節(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é)以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java switch語句的使用詳解

    Java switch語句的使用詳解

    Java switch語句隨JDK演進(jìn)支持int/char、String及模式匹配,具備表達(dá)式限制、穿透控制、作用域隔離等特性,適用于狀態(tài)機(jī)、命令解析等場景,需注意類型兼容性及break使用,推薦使用箭頭語法和編譯器優(yōu)化提升代碼質(zhì)量
    2025-07-07
  • SpringBoot實(shí)現(xiàn)HTTPS加密通信的詳細(xì)指南

    SpringBoot實(shí)現(xiàn)HTTPS加密通信的詳細(xì)指南

    這篇文章主要為大家詳細(xì)介紹了Spring?Boot中HTTPS的實(shí)現(xiàn)方案與實(shí)戰(zhàn)避坑指南,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-06-06
  • Spring中事件發(fā)布機(jī)制及流程詳解

    Spring中事件發(fā)布機(jī)制及流程詳解

    這篇文章主要介紹了Spring中事件發(fā)布機(jī)制及流程詳解,在分析源碼的過程中,也是大量使用了事件機(jī)制,在我分析的這篇博客中,有不少地方都運(yùn)用了事件發(fā)布機(jī)制,所以本文的目的是從SpringBoot中學(xué)習(xí)到事件的發(fā)布流程,需要的朋友可以參考下
    2023-11-11
  • Java數(shù)據(jù)結(jié)構(gòu)之順序表和鏈表精解

    Java數(shù)據(jù)結(jié)構(gòu)之順序表和鏈表精解

    我在學(xué)習(xí)完順序表后一直對順序表和鏈表的概念存在一些疑問,這里給出一些分析和看法,通讀本篇對大家的學(xué)習(xí)或工作具有一定的價值,需要的朋友可以參考下
    2021-09-09
  • java線程池核心線程不被摧毀的原理及分析

    java線程池核心線程不被摧毀的原理及分析

    這篇文章主要介紹了java線程池核心線程不被摧毀的原理及分析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • Java PreparedStatement用法詳解

    Java PreparedStatement用法詳解

    這篇文章主要介紹了Java PreparedStatement用法詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • JVM調(diào)試命令與調(diào)試工具詳解

    JVM調(diào)試命令與調(diào)試工具詳解

    JVM statistics Monitoring,用于監(jiān)視虛擬機(jī)運(yùn)行時狀態(tài)信息的命令,它可以顯示出虛擬機(jī)進(jìn)程中的類裝載、內(nèi)存、垃圾收集、JIT編譯等運(yùn)行數(shù)據(jù),這篇文章主要介紹了JVM調(diào)試命令與調(diào)試工具,需要的朋友可以參考下
    2023-10-10
  • Springboot?2.x?RabbitTemplate默認(rèn)消息持久化的原因解析

    Springboot?2.x?RabbitTemplate默認(rèn)消息持久化的原因解析

    這篇文章主要介紹了Springboot?2.x?RabbitTemplate默認(rèn)消息持久化的原因解析,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Springboot與Maven多環(huán)境配置的解決方案

    Springboot與Maven多環(huán)境配置的解決方案

    多環(huán)境配置的解決方案有很多,我看到不少項(xiàng)目的多環(huán)境配置都是使用Maven來實(shí)現(xiàn)的,本文就實(shí)現(xiàn)Springboot與Maven多環(huán)境配置,感興趣的可以了解下
    2021-06-06
  • Java注解Annotation解析

    Java注解Annotation解析

    這篇文章主要為大家詳細(xì)介紹了Java注解Annotation,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評論

双牌县| 洞口县| 湖州市| 炉霍县| 霍林郭勒市| 博湖县| 咸丰县| 南溪县| 调兵山市| 辽阳县| 泸西县| 郸城县| 大化| 孝感市| 玉溪市| 广汉市| 英超| 哈尔滨市| 叙永县| 始兴县| 平阳县| 普兰店市| 永城市| 松溪县| 普宁市| 南宁市| 陆河县| 鹤岗市| 澄江县| 胶州市| 峨山| 蒙自县| 沂南县| 和硕县| 梁山县| 府谷县| 绍兴市| 竹北市| 遂川县| 合阳县| 环江|