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. 安装配置fastDFS文件服务器 - Linux

    一.配置linux环境 1.新建虚拟机 把上次安装的CentOS7的文件复制一份,并改名 打开VM>打开虚拟机,选择刚才复制好的虚拟机,并启动.这样做的目的主要是为了保留一份最基础的母本,为了将 ...

  2. Java执行js代码

    在做项目中有时候需要用到Java调用js文件执行相应的方法 在JDK1.6添加了新的ScriptEngine类,允许用户直接执行js代码. import org.junit.Test; import ...

  3. windows清除访问共享文件夹的登陆信息

    https://jingyan.baidu.com/article/c843ea0b70797e77931e4a96.html 当在命令提示窗口输入net use命令时,会显示本机缓存的共享登录信息, ...

  4. 使用Flex4画图形:圆、矩形、线

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  5. 【Flex】自定义组件学习

    文件列表 主文件: index.mxml 自定义组件  components.mylogo.mxml 图img  a.jpg 2 mylogo.mxml <s:Group xmlns:fx=&q ...

  6. VC中链接错误,提示string重定义

    VC链接错误,说是string已经有了实现了,只要 rebuild 一下好了. Linking...LINK : warning LNK4075: ignoring '/EDITANDCONTINUE ...

  7. 深度学习原理与框架-Tensorflow卷积神经网络-神经网络mnist分类

    使用tensorflow构造神经网络用来进行mnist数据集的分类 相比与上一节讲到的逻辑回归,神经网络比逻辑回归多了隐藏层,同时在每一个线性变化后添加了relu作为激活函数, 神经网络使用的损失值为 ...

  8. stage.focus后 有黄色边框怎么去掉

    stage.stageFocusRect = false; stage.focus=niao; 必须先设为false

  9. java web项目使用IDEA打成war包

    步骤: 1.点击 File -->Project Structure...如下图: 2.出现如下界面后点击 Artifacts--> 绿色加号-->Web Application:A ...

  10. Linux主机如何用ssh去登录docker容器的步骤

    进入终端,sudo -i,切换root,输入docker -d 打开另一个终端,切换root,输入docker search ubuntu,大概如下结果: NAME                   ...