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

怎么提高网站响应速度婚纱摄影网站的设计思路

怎么提高网站响应速度,婚纱摄影网站的设计思路,商城微网站开发微网站,个人摄影网站简介: 在实际开发中,构建树状层次结构是常见需求,如组织架构、目录结构或菜单系统。本教案通过解析给定的Java代码,展示如何使用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 List<Menu> children;
}

提示:此处定义了一个名为Menu的类,它包含了菜单项的基本属性,包括ID、名称、父菜单ID以及一个用于存储子菜单项的列表。

2. main方法解析及实现功能


输入参数:

  • List<Menu> menus:包含所有菜单项的集合。

输出结果:

  • List<Menu>:一个仅包含顶级菜单项的列表,每个顶级菜单项已填充了其下级子菜单。
public static void main(String[] args) {List<Menu> menus = menusData();/*** 从菜单列表中筛选出顶级菜单,并为其添加子菜单。** @param menus 菜单列表,包含所有菜单项。* @return 包含所有顶级菜单的列表,其中每个顶级菜单均已包含其所有子菜单。*/List<Menu> 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 List<Menu> getChildren(Menu menu, List<Menu> 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 List<Menu> 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 {@Data@NoArgsConstructor@AllArgsConstructorstaticclass Menu {private Long id;private String name;private Long parentId;private List<Menu> children;}public static void main(String[] args) {List<Menu> menus = menusData();/*** 从菜单列表中筛选出顶级菜单,并为其添加子菜单。** @param menus 菜单列表,包含所有菜单项。* @return 包含所有顶级菜单的列表,其中每个顶级菜单均已包含其所有子菜单。*/List<Menu> 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 List<Menu> getChildren(Menu menu, List<Menu> 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 List<Menu> 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.yayakq.cn/news/38727/

相关文章:

  • 如何做微网站免费做网站哪里有
  • 网站建设与管理logo福州网站建设设计公司
  • 免费发布产品网站成都装修设计公司排名
  • 网站自动更新时间代码有免费的微网站是什么
  • 淄博周村网站建设公司设计师应该知道的网站
  • 娱乐网站模板网站开发毕业设计
  • 福田区住房和建设局网站手机代理
  • 宁波企业网站优化推广高端网站开发设计简介
  • 惠州网站建设领头羊校园官方网站如何制作
  • 福州网站开发私人泰安网站制作推广
  • 网站建设运营的灵魂是wordpress媒体库2m
  • 织梦网站地图模板样式网址百度刷排名
  • 垂直网站 开源码wordpress安装配置文件
  • 网站开发时间计划做整个网站静态页面多少钱
  • 有趣网站建设无聊微信网站协议书
  • 兰州市城乡建设局网站通知公告成都网站建设公司司
  • 正能量不良网站直接进入免费云虚服务器网站建设
  • 关键词网站建设优化泰安人才市场
  • 学科主题资源网站的建设系统门户网站建设详细功能
  • 专业做合同的网站徐汇网站开发培训班
  • 对比网站搜索引擎营销图片
  • 宜兴公司做网站河南建设监理协会网站电话
  • 59网站一起做网店网站关键词优化的价格
  • 贡井区建设局网站仿 手机 网站模板html
  • 做网站去哪找客户360网站排名优化
  • 双浩建设网站项目建设管理 公司 网站
  • 建立网站一般会遇到什么问题利用微博网站做淘客
  • 网站备案工信部wordpress的主题是什么
  • 郑州网站建设智巢网站怎么做成小程序
  • 网上书店网站建设毕业设计范文网站公司维护