日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java将数据封装为树结构_JAVA代码实现多级树结构封装对象

發(fā)布時間:2025/4/5 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java将数据封装为树结构_JAVA代码实现多级树结构封装对象 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

JDK1.8

public class RegionBeanTree implements Serializable{

//保證3個參數(shù) 其他隨意

private static final long serialVersionUID = 1L;

private String code;

private String pid;

private String label;

}

public class TreeToolUtils {

private List rootList; //根節(jié)點對象存放到這里

private List bodyList; //其他節(jié)點存放到這里,可以包含根節(jié)點

public TreeToolUtils(List rootList, List bodyList) {

this.rootList = rootList;

this.bodyList = bodyList;

}

public List getTree(){ //調(diào)用的方法入口

if(bodyList != null && !bodyList.isEmpty()){

//聲明一個map,用來過濾已操作過的數(shù)據(jù)

Map map = Maps.newHashMapWithExpectedSize(bodyList.size());

rootList.forEach(beanTree -> getChild(beanTree,map));

return rootList;

}

return null;

}

public void getChild(RegionBeanTree beanTree,Map map){

List childList = Lists.newArrayList();

bodyList.stream()

.filter(c -> !map.containsKey(c.getCode()))

.filter(c ->c.getPid().equals(beanTree.getCode()))

.forEach(c ->{

map.put(c.getCode(),c.getPid());

getChild(c,map);

childList.add(c);

});

beanTree.setChildren(childList);

}

public static void main(String[] args){

RegionBeanTree beanTree1 = new RegionBeanTree();

beanTree1.setCode("540000");

beanTree1.setLabel("西藏省");

beanTree1.setPid("100000"); //最高節(jié)點

RegionBeanTree beanTree2 = new RegionBeanTree();

beanTree2.setCode("540100");

beanTree2.setLabel("拉薩市");

beanTree2.setPid("540000");

RegionBeanTree beanTree3 = new RegionBeanTree();

beanTree3.setCode("540300");

beanTree3.setLabel("昌都市");

beanTree3.setPid("540000");

RegionBeanTree beanTree4 = new RegionBeanTree();

beanTree4.setCode("540121");

beanTree4.setLabel("林周縣");

beanTree4.setPid("540100");

RegionBeanTree beanTree5 = new RegionBeanTree();

beanTree5.setCode("540121206");

beanTree5.setLabel("阿朗鄉(xiāng)");

beanTree5.setPid("540121");

RegionBeanTree beanTree6 = new RegionBeanTree();

List rootList = new ArrayList<>();

rootList.add(beanTree1);

List bodyList = new ArrayList<>();

bodyList.add(beanTree1);

bodyList.add(beanTree2);

bodyList.add(beanTree3);

bodyList.add(beanTree4);

bodyList.add(beanTree5);

TreeToolUtils utils = new TreeToolUtils(rootList,bodyList);

List result = utils.getTree();

result.get(0);

}

}

總結(jié)

以上是生活随笔為你收集整理的java将数据封装为树结构_JAVA代码实现多级树结构封装对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。