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

大连电子学校网站建设深圳seo网站推广方案

大连电子学校网站建设,深圳seo网站推广方案,万户网络web工作流,免费域名怎么做网站在实际开发中,我们经常会开发菜单,树形结构,数据库一般就使用父id来表示,为了降低数据库的查询压力,我们可以使用Java8中的Stream流一次性把数据查出来,然后通过流式处理,我们一起来看看&#x…

        在实际开发中,我们经常会开发菜单,树形结构,数据库一般就使用父id来表示,为了降低数据库的查询压力,我们可以使用Java8中的Stream流一次性把数据查出来,然后通过流式处理,我们一起来看看,代码实现为了实现简单,就模拟查看数据库所有数据到List里面。

        为了实现这种效果:

下面就使用的一个简单的例子进行演示:

实体类:Departments.java

@Data
@Builder
public class Departments {/*** id*/public Integer id;/*** 名称*/public String name;/*** 父id ,根节点为0*/public Integer parentId;/*** 子节点信息*/public List<Departments> childList;public Departments(Integer id, String name, Integer parentId) {this.id = id;this.name = name;this.parentId = parentId;}public Departments(Integer id, String name, Integer parentId, List<Departments> childList) {this.id = id;this.name = name;this.parentId = parentId;this.childList = childList;}
}

使用递归构建树形结构

public class DepartmentsTreeTest {@Testpublic void testtree() {// 模拟从数据库查询出来的菜单数据List<Departments> departments = Arrays.asList(new Departments(1, "总行", 0),new Departments(2, "分行", 1),new Departments(3, "攀枝花分行", 2),new Departments(4, "成都分行", 2),new Departments(5, "凉山分行", 2),new Departments(6, "支行", 1),new Departments(7, "绵阳支行", 6),new Departments(8, "德阳支行", 6),new Departments(9, "绵阳支行街道", 7),new Departments(10, "德阳支行街道", 7),new Departments(11, "子公司", 1),new Departments(12, "我是子公司", 11));// 获取部门菜单信息// 通过filter()方法筛选出所有部门菜单项。部门的特征是parentId为0,即没有父节点。这些部门菜单项的列表被称为collectList<Departments> collect = departments.stream().filter(m -> m.getParentId() == 0)// 对于每个部门菜单项,我们使用map()方法来递归所有部门地获取其所有子菜单项,并将这些子菜单项设置为部门菜单项的childList属性。.map((m) -> {m.setChildList(getChildrens(m, departments));return m;}).collect(Collectors.toList());System.out.println("-------转json输出结果-------");System.out.println(JSON.toJSON(collect));}/*** 递归查询部门* @param root 部门* @param all  所有节点* @return 包含所有部门的列表*/private List<Departments> getChildrens(Departments root, List<Departments> all) {// 过滤出所有与部门的id相匹配的部门List<Departments> children = all.stream().filter(m -> {// 当所有节点中的parentid与部门的id一致时,表示为部门的部门return Objects.equals(m.getParentId(), root.getId());}).map((m) -> {// 递归查询该部门的部门m.setChildList(getChildrens(m, all));return m;}).collect(Collectors.toList());return children;}}

输出结果:

        输出的JSON格式的结果你可以直接复制进行测试查看。

 

http://www.laogonggong.com/news/38665.html

相关文章:

  • 做 在线观看免费网站网站做优化
  • 西双版纳州住房和城乡建设局网站广州seo快速排名
  • 苏州做网站公司网站模板
  • 做什么网站赚钱最快免费行情网站的推荐理由
  • 网站建设实验报告格式seo关键字怎么优化
  • 怎么自己制作图片关键词优化设计
  • 做书的网站有哪些国外网站seo
  • 南宁站建好就够用上海全国关键词排名优化
  • 网站建设制作包括哪些百度手机端排名如何优化
  • 免费网站诊断网盟推广
  • 淘宝式网站建设西安seo外包优化
  • 做虚拟主机网站营销网站制作
  • 网站怎么做404 301seo网站优化方
  • 如何与知名网站做友情链接百度收录查询工具官网
  • 前后端分离实现网站开发百度竞价排名点击软件
  • 软件开发工程师薪资待遇青山seo排名公司
  • 网络会议系统设备百度seo代理
  • 怎么用微信做网站老域名购买
  • 新手如何搭建网站域名买卖交易平台
  • 安徽盛绿建设网站seo点击工具帮你火21星热情
  • 企业网站升级推广什么软件可以长期赚钱
  • 临沂做网站推广的公司有推广优化排名
  • 网站做广告投放 做销售线索预估长春网站推广公司
  • 网站建设一点通百度收录网站链接入口
  • 网站开发需要的技术人才最热门的短期培训课程
  • wordpress 菜单高亮seo的基础是什么
  • 小米手机网站建设目标2023网络营销成功案例
  • 网页休闲游戏网站以品牌推广为目的的广告网络平台
  • php mysql 网站建设百度平台官网
  • 个人网站如何制作最打动人心的广告语