java 递归 树形

  1. //菜单树形结构  
  2.    public JSONArray treeMenuList(JSONArray menuList, int parentId) {  
  3.        JSONArray childMenu = new JSONArray();  
  4.        for (Object object : menuList) {  
  5.            JSONObject jsonMenu = JSONObject.fromObject(object);  
  6.            int menuId = jsonMenu.getInt("id");  
  7.            int pid = jsonMenu.getInt("parentId");  
  8.            if (parentId == pid) {  
  9.                JSONArray c_node = treeMenuList(menuList, menuId);  
  10.                jsonMenu.put("childNode", c_node);  
  11.                childMenu.add(jsonMenu);  
  12.            }  
  13.        }  
  14.        return childMenu;  
  15.    }  
  16.   
  17. public static void main(String args[]) {  
  18.        MenuCacheService menuCacheService = new MenuCacheService();  
  19.        JSONArray jsonArray = new JSONArray();  
  20.        Menu menu1 = new Menu();  
  21.        menu1.setId(1l);  
  22.        menu1.setParentId(0);  
  23.        menu1.setLevel(0);  
  24.        Menu menu2 = new Menu();  
  25.        menu2.setId(2l);  
  26.        menu2.setParentId(0);  
  27.        menu2.setLevel(0);  
  28.        Menu menu3 = new Menu();  
  29.        menu3.setId(3l);  
  30.        menu3.setParentId(2);  
  31.        menu3.setLevel(1);  
  32.        Menu menu4 = new Menu();  
  33.        menu4.setId(4l);  
  34.        menu4.setParentId(2);  
  35.        menu4.setLevel(1);  
  36.        Menu menu5 = new Menu();  
  37.        menu5.setId(5l);  
  38.        menu5.setParentId(4);  
  39.        menu5.setLevel(2);  
  40.        Menu menu6 = new Menu();  
  41.        menu6.setId(6l);  
  42.        menu6.setParentId(1);  
  43.        menu6.setLevel(1);  
  44.   
  45.        jsonArray.add(menu1);  
  46.        jsonArray.add(menu2);  
  47.        jsonArray.add(menu3);  
  48.        jsonArray.add(menu4);  
  49.        jsonArray.add(menu5);  
  50.        jsonArray.add(menu6);  
  51.   
  52.        System.out.print(menuCacheService.treeMenuList(jsonArray,0));  
  53.    }  
原文地址:https://www.cnblogs.com/jtlgb/p/8670062.html