聯(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ù)形圖形
注意,使用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)