亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java樹形結(jié)構(gòu)遞歸查詢方式

 更新時(shí)間:2024年12月17日 10:32:23   作者:冷冷清清中的風(fēng)風(fēng)火火  
文章介紹了Java中實(shí)現(xiàn)樹形結(jié)構(gòu)遞歸查詢的方法,首先找出所有的根節(jié)點(diǎn),然后通過循環(huán)遍歷根節(jié)點(diǎn),找到每個(gè)根節(jié)點(diǎn)的子節(jié)點(diǎn),最終構(gòu)建完整的樹形結(jié)構(gòu),這是一種有效的遞歸查詢思路,適用于需要層次化展示數(shù)據(jù)的場(chǎng)景

Java樹形結(jié)構(gòu)遞歸查詢

思路

先找到所有的根節(jié)點(diǎn),再通過循環(huán)遍歷所有的根節(jié)點(diǎn),找到每個(gè)跟節(jié)點(diǎn)的子節(jié)點(diǎn),最終形成一個(gè)樹形結(jié)構(gòu)

    /**
     * 構(gòu)建樹形結(jié)構(gòu)數(shù)據(jù)new
     * @param org
     * @return
     */
    public List<OrgEntity> builTree(OrgEntity org){
        List<OrgEntity> treeMenus =new ArrayList<>();
		// 查詢所有數(shù)據(jù)
        List<OrgEntity> reList = this.queryListByOrg(org);
		// 獲取根節(jié)點(diǎn)數(shù)據(jù)
        List<OrgEntity> rootList = this.getRootNode(reList);
        for(OrgEntity node : rootList){
		    // 為根節(jié)點(diǎn)數(shù)據(jù)遞歸添加字點(diǎn)數(shù)據(jù)
            node=buildChilTree(node,reList);
            treeMenus.add(node);
        }
        return treeMenus;
    }
    /**
     * 獲取根節(jié)點(diǎn)new
     * @param list
     * @return
     */
    public List<OrgEntity> getRootNode(List<OrgEntity> list){
        List<OrgEntity> rootMenuLists =new ArrayList
		// 遍歷list,獲取根節(jié)點(diǎn)數(shù)據(jù)
        for(OrgEntity menuNode : list) {
            boolean isExit = false;
            for(OrgEntity node : list){
                if(menuNode.getParentId() != null && menuNode.getParentId().equals(node.getId())){
                    isExit = true;
                    break;
                }
            }
			// 如果遍歷該數(shù)據(jù)沒有上級(jí)節(jié)點(diǎn),就放到根節(jié)點(diǎn)list中,否則就不放
            if(!isExit){
                rootMenuLists.add(menuNode);
            }
        }
        return rootMenuLists;
    }
    //遞歸,建立子樹形結(jié)構(gòu)new
    public OrgEntity buildChilTree(OrgEntity pNode,List<OrgEntity> list){
        List<OrgEntity> chilMenus =new  ArrayList<>();
        for(OrgEntity menuNode : list) {
            if(menuNode.getParentId().equals(pNode.getId())) {
                chilMenus.add(buildChilTree(menuNode,list));
            }
        }
        pNode.setChildren(chilMenus);
        return pNode;
    }

總結(jié)

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

相關(guān)文章

  • 詳解Struts2動(dòng)態(tài)方法調(diào)用

    詳解Struts2動(dòng)態(tài)方法調(diào)用

    這篇文章主要介紹了詳解Struts2動(dòng)態(tài)方法調(diào)用,涉及調(diào)用方法的代碼,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-09-09
  • Java模版引擎Freemarker

    Java模版引擎Freemarker

    FreeMarker是一個(gè)模板引擎,一個(gè)基于模板生成文本輸出的通用工具,使用純Java編寫 FreeMarker被設(shè)計(jì)用來生成HTML Web頁面,特別是基于MVC模式的應(yīng)用程序
    2016-04-04
  • 淺談一下Java中的訪問修飾符以及作用

    淺談一下Java中的訪問修飾符以及作用

    這篇文章主要介紹了淺談一下Java中的訪問修飾符以及作用,修飾符修飾的是“被訪問”的權(quán)限,所有修飾符都可以修飾成員變量,方法,構(gòu)造方法,需要的朋友可以參考下
    2023-05-05
  • 淺談virtual、abstract方法和靜態(tài)方法、靜態(tài)變量理解

    淺談virtual、abstract方法和靜態(tài)方法、靜態(tài)變量理解

    下面小編就為大家?guī)硪黄獪\談virtual、abstract方法和靜態(tài)方法、靜態(tài)變量理解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • java正則實(shí)現(xiàn)各種日期格式化

    java正則實(shí)現(xiàn)各種日期格式化

    本文給大家分享的是使用java結(jié)合正則表達(dá)式來實(shí)現(xiàn)各種日期的格式化功能,代碼非常的簡(jiǎn)單,有需要的小伙伴可以參考下。
    2015-05-05
  • Intellij IDEA調(diào)試技巧的深入講解

    Intellij IDEA調(diào)試技巧的深入講解

    這篇文章主要給大家介紹了關(guān)于Intellij IDEA調(diào)試技巧的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Spring Boot整合mybatis并自動(dòng)生成mapper和實(shí)體實(shí)例解析

    Spring Boot整合mybatis并自動(dòng)生成mapper和實(shí)體實(shí)例解析

    本文是小編給大家總結(jié)的關(guān)于Spring Boot整合mybatis并自動(dòng)生成mapper和實(shí)體的內(nèi)容,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-05-05
  • Java日期時(shí)間類及計(jì)算詳解

    Java日期時(shí)間類及計(jì)算詳解

    這篇文章主要介紹了Java日期時(shí)間類及計(jì)算詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-07-07
  • 在dos窗口中編譯和運(yùn)行java文件的方法

    在dos窗口中編譯和運(yùn)行java文件的方法

    這篇文章主要介紹了在dos窗口中編譯和運(yùn)行java文件的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Mybatis中的mapper模糊查詢語句LIKE

    Mybatis中的mapper模糊查詢語句LIKE

    這篇文章主要介紹了Mybatis中的mapper模糊查詢語句LIKE,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2021-12-12

最新評(píng)論