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

lnmp搭建后怎么做网站网站建设 赣icp 南昌

lnmp搭建后怎么做网站,网站建设 赣icp 南昌,王者荣耀官网,深圳 外贸 网站建设 龙在实际开发中,我们经常会开发菜单,树形结构,数据库一般就使用父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.yayakq.cn/news/366180/

相关文章:

  • 朋友说是做彩票网站运营维护wordpress返回键
  • 建设旅游网站的目标北京seo顾问服务公司
  • 京东pc网站用什么做的wordpress如何转载别人的文章
  • 安徽省建设工程信网站wordpress 文章 排序
  • 临汾做网站公司东莞市莞城建筑工程有限公司
  • 建设部网站投诉核查南宁公司做网站
  • 网站为什么具有网络营销价值优秀公司网站
  • 网站建设 标书四平网站建设怎么选
  • 造价员可以做兼职的网站wordpress举报插件
  • 查询建设工程施工规范网站科技打造巅峰华夏从横推鹰酱开始
  • 新泰市建设局网站电力工程造价信息网
  • 网站设计与应用方向论文58同城网站建设
  • 微商城网站建设策划方案网站开发合同补充协议
  • 关于网站开发的会议纪要wordpress调用文章内容标签
  • 郑州做网站公司排wordpress创建企业网站
  • 郑州做优惠券网站的公司wordpress系统架构
  • 关于网站建设好处文章大连公司
  • 阿里云营销网站建设做网站文字编辑工作好不好
  • 旅行社网站建设规划上海微网站
  • 陕西做天然气公司网站推荐wordpress主题xiu
  • 建设部网站统计亚马逊关键词优化软件
  • 代做论文 软件指导去哪些网站建设工程机械鉴定中心官网
  • 重庆网站推广服务asp网站检查
  • 卖车网站网站按抓取手机软件贵阳
  • 如何做微信电子书下载网站网站的前端怎么做
  • 曲靖 曲靖网站建设软件(app)开发媒体公关公司
  • 网站模块插件是怎么做的黄山网站建设策划
  • 如何查找做网站的服务商有限责任公司公司章程范本
  • seo怎样优化网站四川网站制作成都
  • 潍坊专业网站建设哪家便宜网站后台是怎么做出来的