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. atom编辑器适用

    因为要在多平台下适用node,同事推荐atom.所以下载了进行试用. 1.下载 https://atom.io/

  2. System.Data.DbType映射关系

    有如下类型的映射对照: System.Data.SqlClient.SqlDbType  System.Data.OleDb.OleDbType System.Data.Odbc.OdbcType S ...

  3. 流程图工具Visual Paradigm for UML

  4. C# 设计模式-策略者模式(Strategy)

    策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换.策略模式使得算法可以在不影响到客户端的情况下发生变化. 策略模式是对算法的包装,是把使用算法的责任和 ...

  5. winform菜单栏、工具栏

    MenuStrip:菜单 -第一格为选项名,子单可隐藏 --在其中键入”-”可出现分割线或在其上-右键-插入- Sparator -右键-插入标准项,可输入基本菜单项 -右键选项卡--设置图像 --设 ...

  6. 15. combobox、combotree获取显示值和value值方式

    $('#form1 #clsName').combobox('getValue'); $('#form1 #clsName').combobox('getText'); $('#form1 #clsN ...

  7. delphi java 日期 转换 获取Unix时间戳

    获取Unix时间戳 http://www.cnblogs.com/findumars/p/4716753.html 最简单准确一句话 Result:=IntToStr(  DateTimeToUnix ...

  8. 深度学习原理与框架-卷积网络细节-经典网络架构 1.AlexNet 2.VGG

    1.AlexNet是2012年最早的第一代神经网络,整个神经网络的构架是8层的网络结构.网络刚开始使用11*11获得较大的感受野,随后使用5*5和3*3做特征的提取,最后使用3个全连接层做得分值得运算 ...

  9. iOS app bundle id

    每个app的bundle id是唯一的,不同开发者账号不能申请相同的bundle id,例如开发者账号B想用开发者A的bundle id,只能是开发者A将这个bundle id先删除,B才可以注册,否 ...

  10. mysql主从复制搭建中几种log和pos详解

    一.主从原理 Replication 线程   Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql in ...