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. public static void main(String args[]) {
  17. MenuCacheService menuCacheService = new MenuCacheService();
  18. JSONArray jsonArray = new JSONArray();
  19. Menu menu1 = new Menu();
  20. menu1.setId(1l);
  21. menu1.setParentId(0);
  22. menu1.setLevel(0);
  23. Menu menu2 = new Menu();
  24. menu2.setId(2l);
  25. menu2.setParentId(0);
  26. menu2.setLevel(0);
  27. Menu menu3 = new Menu();
  28. menu3.setId(3l);
  29. menu3.setParentId(2);
  30. menu3.setLevel(1);
  31. Menu menu4 = new Menu();
  32. menu4.setId(4l);
  33. menu4.setParentId(2);
  34. menu4.setLevel(1);
  35. Menu menu5 = new Menu();
  36. menu5.setId(5l);
  37. menu5.setParentId(4);
  38. menu5.setLevel(2);
  39. Menu menu6 = new Menu();
  40. menu6.setId(6l);
  41. menu6.setParentId(1);
  42. menu6.setLevel(1);
  43. jsonArray.add(menu1);
  44. jsonArray.add(menu2);
  45. jsonArray.add(menu3);
  46. jsonArray.add(menu4);
  47. jsonArray.add(menu5);
  48. jsonArray.add(menu6);
  49. System.out.print(menuCacheService.treeMenuList(jsonArray,0));
  50. }

java 递归 树形的更多相关文章

  1. java递归树形菜单显示

    今天写权限整好涉及到一些菜单的显示,最先想到的是递归遍历输出,但是呢在网上找了很多有关的资料没有符合自己需求的所以就自己写了一个,如果觉得靠谱 请点点关注!!!赞一个 首先看一些设计的数据库设计 菜单 ...

  2. Java 数据库树形查询生成菜单结构

    Java 数据库树形查询 JAVA从数据库读取菜单,递归生成菜单树. 定义菜单类 public class Menu { // 菜单id private String id; // 菜单名称 priv ...

  3. java返回树形结构的正确姿势

    业务场景 通常我们前端需要一个树形的导航菜单或者分类菜单,如后台权限管理中的权限树,亦或者下面例子中商城系统的商品分类多级菜单(一般为三级菜单) 数据库设计 数据库设计,采用parentId来指向自己 ...

  4. Java递归列出目录下全部文件

    Java递归列出目录下全部文件 /** * 列出指定目录的全部内容 * */ import java.io.*; class hello{ public static void main(String ...

  5. Java 递归调用 recursive 给一个参数 返回一大堆

    需求: 需要组装成对象多层嵌套式的 json字符串; 想到使用 递归来完成这个多层嵌套: 憋了四个小时,终于写出来了; 先看效果: 数据库中的数据: 拼装后的效果: [ EmpVO{ ename='孙 ...

  6. JAVA 递归实现从n个数中选取m个数的所有组合

    这周Java课程有个小作业:Java递归实现从n个数中选取m个数的所有组合 代码如下: //其中 n 取 1,2,3,4,5 五个数, m 取 3 package javaText; public c ...

  7. JAVA递归、非递归遍历二叉树(转)

    原文链接: JAVA递归.非递归遍历二叉树 import java.util.Stack; import java.util.HashMap; public class BinTree { priva ...

  8. ejs模版实现递归树形结构渲染

    使用过前端模板的同学们,尤其是使用过nodejs写后台服务的同学们,应该对ejs模板和jade模板都不陌生.对与ejs模板和jade模板孰强孰弱,载各大论坛中一直争论不休,有说ejs更直观的,也有说j ...

  9. 慎用Java递归调用

    总结:慎用Java递归调用,测试时可以尝试该方法,否则尽量不要使用递归!递归过多调用时,最好改为for或者whlie来代替. 在java语言中,使用递归调用时,如果过多的调用容易造成java.lang ...

随机推荐

  1. 【Jmeter自学】Jmeter脚本录制(二)

    ==================================================================================================== ...

  2. LeetCode 11. [👁] Container With Most Water & two pointers

    盛最多水的容器 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0).找 ...

  3. 【转】oracle定制定时执行任务

    本节摘要:本节介绍使用oracle自带的job来实现oracle定制定时执行任务. 1.引言 定制定时执行的任务有两种形式,系统级别和数据库级别, 从操作系统级别来讲, windows系统我们可以使用 ...

  4. uva-10720-贪心

    题意:对于一个简单图(不存在平行边和自旋边),输入所有的点的度,问,能不能变成一个简单图. 解题思路: 可图化定理.https://blog.csdn.net/shuangde800/article/ ...

  5. HANA Database SR Basis Setting

    HANA Database SR Basis Setting: 1.关闭Hana数据库,把System replication专用的IP地址和相关主机名填写到global.ini配置文件里: #su ...

  6. PL/SQL将sql脚本数据导入Oracle

    PL/SQL将sql脚本数据导入数据库: 1.首先,使用plsql登录到需要导入数据的数据库.在[tools]--[Import tables] 2.选择第二个[SQL Inserts],在下面,点击 ...

  7. Hibernate架构

    参照: http://blog.csdn.net/lovesummerforever/article/details/19169779 http://www.w3cschool.cn/hibernat ...

  8. centos7挂载本地yum文件

    https://www.cnblogs.com/aenjon/p/4081794.html

  9. Shell 编程(循环)

    for in 循环语句 #!/bin/bash for x in one two three four do echo number $x done 例:取出passwd中每一行name 并输出 he ...

  10. PHP中的 抽象类(abstract class)和 接口(interface)

    抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类. 2 .抽 ...