list转换成树形数据

往往要将数据库中的菜单配置转成树形结构展示到前台,这边提供一种二维树组转树形(同事那边看来的,很好用),以供参考:

数据库  id,name,parent_id

java对象:

Java代码  

1. private class TreeNode{  

2.     private String id;  

3.     private String name;  

4.     private String parentId;  

5.     private List<TreeNode> children;  

6.       

7.     // TODO getter/setter  

8. }  

树构造代码如下:

Java代码  

1. List<TreeNode> menuList = xxManager.findAllMenu();  

2.   

3. List<TreeNode> nodeList = new ArrayList<TreeNode>();  

4. for(TreeNode node1 : menuList){  

5.     boolean mark = false;  

6.     for(TreeNode node2 : menuList){  

7.         if(node1.getParentId()!=null && node1.getParentId().equals(node2.getId())){  

8.             mark = true;  

9.             if(node2.getChildren() == null)  

10.                 node2.setChildren(new ArrayList<TreeNode>());  

11.             node2.getChildren().add(node1);   

12.             break;  

13.         }  

14.     }  

15.     if(!mark){  

16.         nodeList.add(node1);   

17.     }  

18. }  

19. //转为json格式        

20. String json = JSONArray.fromObject(nodeList).toString();  

21. System.out.println("json:"+json);  

原理如下图了:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章