java 递归 树形
- //菜单树形结构
- public JSONArray treeMenuList(JSONArray menuList, int parentId) {
- JSONArray childMenu = new JSONArray();
- for (Object object : menuList) {
- JSONObject jsonMenu = JSONObject.fromObject(object);
- int menuId = jsonMenu.getInt("id");
- int pid = jsonMenu.getInt("parentId");
- if (parentId == pid) {
- JSONArray c_node = treeMenuList(menuList, menuId);
- jsonMenu.put("childNode", c_node);
- childMenu.add(jsonMenu);
- }
- }
- return childMenu;
- }
- public static void main(String args[]) {
- MenuCacheService menuCacheService = new MenuCacheService();
- JSONArray jsonArray = new JSONArray();
- Menu menu1 = new Menu();
- menu1.setId(1l);
- menu1.setParentId(0);
- menu1.setLevel(0);
- Menu menu2 = new Menu();
- menu2.setId(2l);
- menu2.setParentId(0);
- menu2.setLevel(0);
- Menu menu3 = new Menu();
- menu3.setId(3l);
- menu3.setParentId(2);
- menu3.setLevel(1);
- Menu menu4 = new Menu();
- menu4.setId(4l);
- menu4.setParentId(2);
- menu4.setLevel(1);
- Menu menu5 = new Menu();
- menu5.setId(5l);
- menu5.setParentId(4);
- menu5.setLevel(2);
- Menu menu6 = new Menu();
- menu6.setId(6l);
- menu6.setParentId(1);
- menu6.setLevel(1);
- jsonArray.add(menu1);
- jsonArray.add(menu2);
- jsonArray.add(menu3);
- jsonArray.add(menu4);
- jsonArray.add(menu5);
- jsonArray.add(menu6);
- System.out.print(menuCacheService.treeMenuList(jsonArray,0));
- }
java 递归 树形的更多相关文章
- java递归树形菜单显示
今天写权限整好涉及到一些菜单的显示,最先想到的是递归遍历输出,但是呢在网上找了很多有关的资料没有符合自己需求的所以就自己写了一个,如果觉得靠谱 请点点关注!!!赞一个 首先看一些设计的数据库设计 菜单 ...
- Java 数据库树形查询生成菜单结构
Java 数据库树形查询 JAVA从数据库读取菜单,递归生成菜单树. 定义菜单类 public class Menu { // 菜单id private String id; // 菜单名称 priv ...
- java返回树形结构的正确姿势
业务场景 通常我们前端需要一个树形的导航菜单或者分类菜单,如后台权限管理中的权限树,亦或者下面例子中商城系统的商品分类多级菜单(一般为三级菜单) 数据库设计 数据库设计,采用parentId来指向自己 ...
- Java递归列出目录下全部文件
Java递归列出目录下全部文件 /** * 列出指定目录的全部内容 * */ import java.io.*; class hello{ public static void main(String ...
- Java 递归调用 recursive 给一个参数 返回一大堆
需求: 需要组装成对象多层嵌套式的 json字符串; 想到使用 递归来完成这个多层嵌套: 憋了四个小时,终于写出来了; 先看效果: 数据库中的数据: 拼装后的效果: [ EmpVO{ ename='孙 ...
- JAVA 递归实现从n个数中选取m个数的所有组合
这周Java课程有个小作业:Java递归实现从n个数中选取m个数的所有组合 代码如下: //其中 n 取 1,2,3,4,5 五个数, m 取 3 package javaText; public c ...
- JAVA递归、非递归遍历二叉树(转)
原文链接: JAVA递归.非递归遍历二叉树 import java.util.Stack; import java.util.HashMap; public class BinTree { priva ...
- ejs模版实现递归树形结构渲染
使用过前端模板的同学们,尤其是使用过nodejs写后台服务的同学们,应该对ejs模板和jade模板都不陌生.对与ejs模板和jade模板孰强孰弱,载各大论坛中一直争论不休,有说ejs更直观的,也有说j ...
- 慎用Java递归调用
总结:慎用Java递归调用,测试时可以尝试该方法,否则尽量不要使用递归!递归过多调用时,最好改为for或者whlie来代替. 在java语言中,使用递归调用时,如果过多的调用容易造成java.lang ...
随机推荐
- Call requires permission which may be rejected by user: code should explicitly check to see if permi
Call requires permission which may be rejected by user: code should explicitly check to see if permi ...
- 【Excel技能】字符串包含某字符串个数?替换许多组字符串?
=len(单元格A)-len(substitute(单元格A,某字符串,)) 原理:将某字符串替换成空,前后字符串长即为减去的这个字符串长度,这个字符串出现个数=前后字符串长度之差/这个字符串长度 = ...
- 2014最新 iOS App 提交上架store 详细流程
http://blog.csdn.net/tt5267621/article/details/39430659
- 《算法》第四章部分程序 part 17
▶ 书中第四章部分程序,包括在加上自己补充的代码,无环图最短 / 最长路径通用程序,关键路径方法(critical path method)解决任务调度问题 ● 无环图最短 / 最长路径通用程序 pa ...
- Maven的下载和配置
一.下载 打开 链接地址 http://maven.apache.org/download.cgi 下载 Maven, 下载加压打开以后目录: 二.配置环境变量 我的电脑 -> 属性->高 ...
- 1. 在config.ini文件中加入dm.park.time=1,会使uap中的tomcat启动加快
在config.ini文件中加入dm.park.time=1,会使uap中的tomcat启动加快
- usb之python(pyusb)
电脑系统为WIN7 64位 python:为python3.6 32位 需要插件PyUSB-1.0.0.tar,pywinusb-0.4.2. 按照的步骤我偷懒了,自己百度一下. 我们先看设备管理的 ...
- react-native-vector-icons 图标库使用
安装链接 yarn add react-native-vector-icons react-native link react-native-vector-icons 在项目工程中打开 .xcodep ...
- Centos 7 安装 sphinx2.2 (转)
一.首先到Sphinx官网找到下载地址:http://sphinxsearch.com/downloads/release/如果你比较懒,好吧:http://sphinxsearch.com/file ...
- Redis入门高级部分
Redis: redis批量删除 redis数据备份和恢复 redis安全 redis性能测试 Redis 客户端连接 redis管道技术 redis分区 java操作redis redis批量删除 ...