java递归 treeview_Bootstrap实践之Java递归转换treeview结构数据

packagecn.chendd.tips.examples.treeview;import...;/**

*数据转换测试*

* @authorchendd

* @date2020/x/xx 22:34

*/public classDataConvertTest {privateIntegerROOT_ID= -1;//约定根节点为-1privateListcityList;@Testpublic voidtest(){

System.out.println("======原始数据======");

System.out.println(JSONObject.toJSONString(cityList,true));

Stream rootCity =cityList.stream().filter(city ->ROOT_ID.equals(city.getParentId()));

List treeviewList =newArrayList<>();this.convertTreeview(rootCity, treeviewList);for(Treeview treeview : treeviewList) {this.collectList(treeview ,this.cityList);

}

System.out.println("======转换后的数据======");

System.out.println(JSON.toJSONString(treeviewList ,true));

}/**

*获取原始数据中的一级菜单*/private voidconvertTreeview(Stream cityStream, List treeviewList) {

cityStream.forEach(city -> {

Treeview treeview =newTreeview();

treeview.setNodeId(city.getId());

treeview.setText(city.getName());

treeview.setState(null);

treeview.setNodes(null);treeviewList.add(treeview);

});

}/**

*遍历一级菜单,并递归调用字级菜单,查找对应的菜单节点*/private voidcollectList(Treeview treeview, List cityList) {

Integer nodeId = treeview.getNodeId();for(City city : cityList) {

Integer parentId = city.getParentId();if(parentId !=null&& parentId.equals(nodeId)){if(treeview.getNodes() ==null){

treeview.setNodes(newArrayList<>());

}

Treeview childMenuTreeview =newTreeview();

childMenuTreeview.setNodeId(city.getId());

childMenuTreeview.setText(city.getName());

childMenuTreeview.setState(null);

treeview.getNodes().add(childMenuTreeview);this.collectList(childMenuTreeview , cityList);

}

}

}@Beforepublic voidinit(){cityList=newArrayList<>();cityList.add(newCity(1,"北京市",ROOT_ID));cityList.add(newCity(2,"海淀区",1));cityList.add(newCity(3,"朝阳区",1));cityList.add(newCity(4,"湖北省",ROOT_ID));cityList.add(newCity(5,"武汉市",4));cityList.add(newCity(6,"襄阳市",4));cityList.add(newCity(7,"襄城区",6));cityList.add(newCity(8,"襄州区",6));cityList.add(newCity(9,"樊城区",6));cityList.add(newCity(10,"老河口市",6));cityList.add(newCity(11,"谷城县",6));cityList.add(newCity(12,"南漳县",6));cityList.add(newCity(13,"枣阳市",6));cityList.add(newCity(14,"保康县",6));cityList.add(newCity(15,"宜城市",6));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值