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);  

原理如下圖了:


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