当前位置: 首页 > news >正文

台州网站建设选浙江华企建设了湛江市志愿服务网站

台州网站建设选浙江华企,建设了湛江市志愿服务网站,温州网站制作价格,枣阳市建设局网站简介#xff1a; 在实际开发中#xff0c;构建树状层次结构是常见需求#xff0c;如组织架构、目录结构或菜单系统。本教案通过解析给定的Java代码#xff0c;展示如何使用Java 8 Stream API将扁平化的菜单数据转换为具有层级关系的树形结构。 1. 核心类定义 - Menu Data…简介 在实际开发中构建树状层次结构是常见需求如组织架构、目录结构或菜单系统。本教案通过解析给定的Java代码展示如何使用Java 8 Stream API将扁平化的菜单数据转换为具有层级关系的树形结构。 1. 核心类定义 - Menu Data NoArgsConstructor AllArgsConstructor static class Menu {private Long id;private String name;private Long parentId;private ListMenu children; }提示此处定义了一个名为Menu的类它包含了菜单项的基本属性包括ID、名称、父菜单ID以及一个用于存储子菜单项的列表。 2. main方法解析及实现功能 输入参数 ListMenu menus包含所有菜单项的集合。 输出结果 ListMenu一个仅包含顶级菜单项的列表每个顶级菜单项已填充了其下级子菜单。 public static void main(String[] args) {ListMenu menus menusData();/*** 从菜单列表中筛选出顶级菜单并为其添加子菜单。** param menus 菜单列表包含所有菜单项。* return 包含所有顶级菜单的列表其中每个顶级菜单均已包含其所有子菜单。*/ListMenu topLevelMenus menus.stream() // 使用流处理menus集合.filter(menu - menu.getParentId() 0 || menus.stream().noneMatch(other - other.getId().equals(menu.getParentId()))) // 筛选条件父菜单ID为0或不存在对应父菜单的菜单项.peek(menu - menu.setChildren(getChildren(menu, menus))) // 为每个顶级菜单设置子菜单.collect(Collectors.toList()); // 将筛选后的顶级菜单集合转换为List(Menu)类型} 3. 辅助方法——获取指定菜单的所有子菜单 /*** 获取指定菜单的所有子菜单。** param menu 指定的菜单对象我们要查找它的子菜单。* param menus 所有菜单的列表从中筛选出子菜单。* return 返回一个包含指定菜单所有子菜单的列表。这个列表中的每个菜单对象都可能包含它们自己的子菜单列表。*/private static ListMenu getChildren(Menu menu, ListMenu menus) {// 使用流对菜单列表进行处理筛选出指定菜单的子菜单return menus.stream().filter(child - child.getParentId().equals(menu.getId())) // 筛选条件菜单的父菜单ID与指定菜单ID匹配.peek(child - child.setChildren(getChildren(child, menus))) // 递归设置每个子菜单的子菜单列表.collect(Collectors.toList()); // 收集结果生成列表} 4. 示例数据生成方法 —— menusData() private static ListMenu menusData() {return Arrays.asList(new Menu(1L, 一级菜单1, 0L, null),new Menu(2L, 二级菜单1, 1L, null),new Menu(3L, 三级菜单1, 2L, null),new Menu(4L, 一级菜单2, 0L, null),new Menu(5L, 二级菜单2, 4L, null),new Menu(6L, 一级菜单3, 0L, null)); }5.完整代码以及演示(TreeExample.java) package com.tenement.auto;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors;public class TreeExample {DataNoArgsConstructorAllArgsConstructorstaticclass Menu {private Long id;private String name;private Long parentId;private ListMenu children;}public static void main(String[] args) {ListMenu menus menusData();/*** 从菜单列表中筛选出顶级菜单并为其添加子菜单。** param menus 菜单列表包含所有菜单项。* return 包含所有顶级菜单的列表其中每个顶级菜单均已包含其所有子菜单。*/ListMenu topLevelMenus menus.stream() // 使用流处理menus集合.filter(menu - menu.getParentId() 0 || menus.stream().noneMatch(other - other.getId().equals(menu.getParentId()))) // 筛选条件父菜单ID为0或不存在对应父菜单的菜单项.peek(menu - menu.setChildren(getChildren(menu, menus))) // 为每个顶级菜单设置子菜单.collect(Collectors.toList()); // 将筛选后的顶级菜单集合转换为List(Menu)类型}/*** 获取指定菜单的所有子菜单。** param menu 指定的菜单对象我们要查找它的子菜单。* param menus 所有菜单的列表从中筛选出子菜单。* return 返回一个包含指定菜单所有子菜单的列表。这个列表中的每个菜单对象都可能包含它们自己的子菜单列表。*/private static ListMenu getChildren(Menu menu, ListMenu menus) {// 使用流对菜单列表进行处理筛选出指定菜单的子菜单return menus.stream().filter(child - child.getParentId().equals(menu.getId())) // 筛选条件菜单的父菜单ID与指定菜单ID匹配.peek(child - child.setChildren(getChildren(child, menus))) // 递归设置每个子菜单的子菜单列表.collect(Collectors.toList()); // 收集结果生成列表}private static ListMenu menusData() {return Arrays.asList(new Menu(1L, 一级菜单1, 0L,null),new Menu(2L, 二级菜单1, 1L,null),new Menu(3L, 三级菜单1, 2L,null),new Menu(4L, 一级菜单2, 0L,null),new Menu(5L, 二级菜单2, 4L,null),new Menu(6L, 一级菜单3, 0L,null));}}总结该案例展示了如何利用Java 的Stream API对菜单数据进行处理首先筛选出顶级菜单项并通过递归方式为其添加子菜单。最后得到了一个完整的树形菜单结构。
http://www.hkea.cn/news/14432237/

相关文章:

  • 如何做网站的教程二维码关于单位建设网站的申请
  • 重庆网站租赁空间怎么做企业网站
  • 电商网站首页开发中国交通建设集团有限公司董事长
  • 建设中医知识学习网站wordpress首页显示友链
  • 网站建设征收文化事业建设费吗wordpress好用的富文本编辑器
  • 自己做的网站怎么设置信息必填建立网站目录结构时应该注意哪几个方面
  • 无锡工厂网站建设平面设计培训网
  • 做网站还需要兼容ie8吗做优惠卷网站倒闭了多少钱
  • 建站公司网站源码惠州网站公司
  • 网站有哪些区别是什么wordpress 微信采集插件
  • 二维码网站制作小游戏中心
  • 用wordpress做音乐网站设计制作建筑模型教案
  • 福建省建设监理网官方网站数字媒体艺术就业方向
  • 创建一个网站的技术营销网络建设四个阶段
  • 怎么给网站添加音乐平面设计案例网站
  • 深圳人才网站建设网站建设工作室介绍范文
  • 合肥商务科技学校网站建设seo网络优化是做什么的
  • wordpress弹出公告网站内容很少如何做seo
  • 宁夏网站建设费用地址汕头专业网页设计培训哪个好
  • 沈阳微信网站建设网站空间密码
  • 天台城乡规划建设局网站苏州网站快速推广
  • 佛山网站建设拓客科技国际设计公司logo
  • 做养生产品哪个网站好网站开发+协作平台
  • 网站域名的选择方法wordpress调整语言
  • 企业网站打包下载wordpress 删除自豪
  • 哪个网站可以做兼职wordpress安装没反应
  • 做企业网站什么软件好厦门建设局人员名单
  • 郑州好的网站建站电子商务网站怎么做数据库
  • 网站域名如何修改wordpress主题video
  • 专业的网站建设设计品牌建设浅谈