欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Java遞歸獲得TreeJson

聯(lián)合MyBatis,由Map獲取

專注于為中小企業(yè)提供做網(wǎng)站、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)九原免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

源碼如下

package com.zl.demo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Java遞歸獲取TreeJson
 * @author ZhangLi
 * @date 2019年6月18日 上午11:10:45
 * @WeiXin zl4828
 * @備注 沫沫金原創(chuàng)提供,僅供參考
 */
public class TreeJson {
    public static void main(String[] args) {
        TreeJson treeJson = new TreeJson();
        treeJson.treeMap.add(new HashMap<String, Object>(){{
            put("ID","0");
            put("NAME","根節(jié)點(diǎn)");
            put("PID","null");
        }});
        treeJson.treeMap.add(new HashMap<String, Object>(){{
            put("ID","1");
            put("NAME","節(jié)點(diǎn)1");
            put("PID","0");
        }});
        treeJson.treeMap.add(new HashMap<String, Object>(){{
            put("ID","2");
            put("NAME","節(jié)點(diǎn)2");
            put("PID","0");
        }});
        treeJson.treeMap.add(new HashMap<String, Object>(){{
            put("ID","3");
            put("NAME","節(jié)點(diǎn)3");
            put("PID","0");
        }});
        treeJson.treeMap.add(new HashMap<String, Object>(){{
            put("ID","11");
            put("NAME","節(jié)點(diǎn)11");
            put("PID","1");
        }});
        treeJson.treeMap.add(new HashMap<String, Object>(){{
            put("ID","12");
            put("NAME","節(jié)點(diǎn)12");
            put("PID","1");
        }});
        treeJson.treeMap.add(new HashMap<String, Object>(){{
            put("ID","13");
            put("NAME","節(jié)點(diǎn)13");
            put("PID","1");
        }});
        System.out.println(treeJson.recursiveTree("0"));
    }

    private List<Map<String, Object>> treeMap = new ArrayList<Map<String, Object>>();  //全局變量

    /**
     * 遞歸算法解析成樹(shù)形結(jié)構(gòu)
     * @param pid
     */
    public Map recursiveTree(String pid) {
        Map node = getNodeById(pid);
        List<Map<String, Object>> childrenList = new ArrayList<Map<String, Object>>();
        if(null==node){
            return node;
        }
        List<Map<String, Object>> childTreeNodes  = getChildTreeById(pid);
        for(Map child : childTreeNodes){
            Map n = recursiveTree(String.valueOf(child.get("ID")));
            childrenList.add(n);
        }
        node.put("children",childrenList);
        return node;
    }

    /**
     * 根據(jù)pid查詢節(jié)點(diǎn)對(duì)象
     */
    public Map getNodeById(String pid){
        for (Map node : treeMap) {
            if(null != pid){
                if (pid.equals(node.get("ID"))) {
                    return node;
                }
            }
        }
        return null;
    }
    /**
     * 根據(jù)父節(jié)點(diǎn)pid獲取所有了節(jié)點(diǎn)
     */
    public List<Map<String, Object>> getChildTreeById(String pid){
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
        if(null != treeMap){
            for (Map node : treeMap) {
                if(null != pid){
                    if (pid.equals(node.get("PID"))) {
                        list.add(node);
                    }
                }
            }
        }
        return list;
    }

}

應(yīng)用場(chǎng)景
例如,Echarts樹(shù)形圖形
Java遞歸獲得TreeJson

注意,使用JSON轉(zhuǎn)換

{
    name: '根節(jié)點(diǎn)',
    pid: null,
    id: 0,
    children: [{
        name: '節(jié)點(diǎn)1',
        pid: 0,
        id: 1,
        children: [{
            name: '節(jié)點(diǎn)11',
            pid: 1,
            id: 11,
            children: []
        }, {
            name: '節(jié)點(diǎn)12',
            pid: 1,
            id: 12,
            children: []
        }, {
            name: '節(jié)點(diǎn)13',
            pid: 1,
            id: 13,
            children: []
        }]
    }, {
        name: '節(jié)點(diǎn)2',
        pid: 0,
        id: 2,
        children: []
    }, {
        name: '節(jié)點(diǎn)3',
        pid: 0,
        id: 3,
        children: []
    }]
};

以上,拷貝本地運(yùn)行,任意應(yīng)用。

網(wǎng)站題目:Java遞歸獲得TreeJson
標(biāo)題網(wǎng)址:http://www.chinadenli.net/article40/pecjho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)Google全網(wǎng)營(yíng)銷推廣靜態(tài)網(wǎng)站定制開(kāi)發(fā)微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)