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. js 原生图片上传

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. IDEA下载Git中项目

     一.             打开idea,点击File>Settings,搜索git(安装系统默认设置即可) 二.        选择git 三.        Git中项目的路径粘贴到ID ...

  3. mysql5.7-windows安装配置

    sonar要求mysql5.6版本以上,所以安装一下最新的mysql5.7 采用相对名路径和命令行启动,这样是为了方便迁移.也提供了加入服务的指令,但没有进行测试 解压mysql的zip压缩包 解压后 ...

  4. 《算法》第四章部分程序 part 8

    ▶ 书中第四章部分程序,包括在加上自己补充的代码,图中找欧拉路径 ● 无向图中寻找欧拉路径,只注释了与欧拉环不同的地方 package package01; import edu.princeton. ...

  5. SD-WAN产品常见问题

    转载: http://www.safecdn.cn/website-announcement/2018/12/sd-wan-problem/102.html 1.SD-WAN加速产品最大的优势是什么? ...

  6. python中的insert

    insert()往列表的指定位置添加元素,举个例子: 1 a = ["hello", "world", "dlrb"] 2 a.insert ...

  7. 高级js--(面向对象js,arguments,闭包,自调)

    1. Arguments对象    l检测参数个数 1.在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们. function howManyArgs() { al ...

  8. CKEditor 5

    1.官网 https://ckeditor.com/ckeditor-5/download/ 2.

  9. css下拉导航栏代码

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  10. span标签 宽度无效解决方案

    完美的解决方案 下 面代码的CSS定义完美解决了span的宽度设置问题. 由于浏览器通常对不支持的CSS属性采取忽略处理的态度, 所以最好将display:inline -block行写在后面,这样在 ...