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. 【Selenium-WebDriver自学】Selenium-IDE验证点(五)

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

  2. js --- 关于DOM的事件操作

    一.JavaScript的组成 JavaScript基础分为三个部分: ECMAScript:JavaScript的语法标准.包括变量.表达式.运算符.函数.if语句.for语句等. DOM:文档对象 ...

  3. CSS样式学习-1

    一.分类 ①内联,写在标签中,写法是style="样式属性".优先级最高. 优点:控制精确.缺点:代码重用性差,范围小. 例如: <div style="font- ...

  4. 机器学习进阶-案例实战-图像全景拼接-图像全景拼接(RANSCA) 1.sift.detectAndComputer(获得sift图像关键点) 2.cv2.findHomography(计算单应性矩阵H) 3.cv2.warpPerspective(获得单应性变化后的图像) 4.cv2.line(对关键点位置进行连线画图)

    1. sift.detectAndComputer(gray, None)  # 计算出图像的关键点和sift特征向量 参数说明:gray表示输入的图片 2.cv2.findHomography(kp ...

  5. 【版本发布】JAVA微服务开发框架,Jeecg-P3 1.0.0 重构版本发布

    1.项目介绍 Jeecg-P3是一个微服务框架,采用插件式模式开发:业务插件以JAR方式提供,松耦合可插拔支持独立部署,也可无缝集成Jeecg平台中,目前jeecg已经提供了在线聊天,我的邮箱等一系列 ...

  6. R-CNN 学习记录

    CNN是一个运用卷积神经网络进行图片分类的开山之作.RCNN是第一个把图片分类和目标检测连接起来的作品. RCNN主要解决的问题是: 1.怎样用深度神经网络进行目标定位:2.怎样用小批量的标注数据来训 ...

  7. Error: Apache shutdown unexpectedly --解决

    原因1:端口占用,百度可解决 原因2: 配置的启动目录不存在~~~ 解决 修改默认目录:

  8. 飞利浦 PHILIPS 电动牙刷HX6730 拆解

    今日,一直比较喜欢用的电动牙刷,飞利浦HX6730坏掉了,初步感觉考虑飞利浦的保修,但是发现发票找不到了.飞利浦的客服也说,电动牙刷的两年保修依据分别是:1.发票开据日期:2.在无发票的情况下,看底部 ...

  9. 2312--1.3.4 Prime Cryptarithm 牛式

    Description 下面是一个乘法竖式,如果用我们给定的那n个数字来取代*,可以使式子成立的话,我们就叫这个式子牛式. * * * x * * ------- * * * * * * ------ ...

  10. java后端实习生面试题目

    1.编程题:java从10000到99999找到AABB类型 public class Test1 { public static void main(String[] args) { String ...