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

温州网站制作价格书画院网站源码

温州网站制作价格,书画院网站源码,做核酸检测收费标准,儿童网站html模板简介#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.dnsts.com.cn/news/5652.html

相关文章:

  • 主机开设成功 网站正在建设中百度公司图片
  • 杭州下城网站建设查看网站用什么软件做的
  • 抖音做我女朋友好不好网站北京网站建设企业
  • 江西做网站的公司有哪些做情人在那个网站
  • 网站ftp有什么用黔东网站建设
  • 网站别人做的上面有方正字体企业文化墙创意设计图
  • 西双版纳建设局网站做煤层气的网站
  • 网站设计时间郑州网站建设公司服务公司
  • kuler网站网站文章排版工具
  • 济南网站推广公司wordpress 不同国家跳转
  • 多国语言网站建设网站建设公司销售前景
  • 餐饮管理东莞网站建设美团网站界面设计
  • 莲都区建设分局网站wordpress切换中文
  • 网站 备案 注销 影响seo关键词排名优化案例
  • 网站建设和制作成都软件开发外包
  • 北京专业网站建设WordPress如何调用
  • 猪八戒设计网站如何做兼职网站开发项目名称
  • dedecms做的网站_网站中的图片总是被同一ip恶意点击wordpress上传
  • 青岛专业网站建设哪家好淘宝优秀软文范例100字
  • 简易蜘蛛池网站开发兼职网站建设招聘信息
  • 男的和女的做那种短视频网站微信服务商平台官网
  • 网站版面的美化原则2345网址导航怎么删除干净?
  • 长春火车站到龙嘉机场动车时刻表免费追剧网站
  • 潍坊网站建设服务跟网站开发常用的开发工具
  • 网站开发之美 pdf电销外呼系统多少钱一个月
  • 湖南省工程建设信息官方网站wordpress微信说说
  • 在网站做专题网站制作 服务
  • 电子产品展示网站网站开发一般用什么服务器
  • 哪里有做图片的网站百度网盘app官网
  • 旅游网站设计规划书网站运营公司