java8 lambda 处理分类和子分类的技巧
public List<DealCategory> getCategories(){List<DealCategory> roots = getAllWithoutDeleted(); // 这条语句可能是从缓存中或者是从数据库中直接拉去符合条件的数据dealCategories.stream().filter(dealCategory -> (dealCategory.getParentId() == 0)).collect(Collectors.toList()); // 过滤出 父节点为0 所有分类// 对所有分类进行排序dealCategories.sort(new Comparator<DealCategory>(){@Overridepublic int compare(DealCategory o1,DealCategory o2){return o1.getOrderNum() > o2.getOrderNum() ? 1:-1;}});// 过滤出所有的字节点 List<DealCategory> subs = dealCategories.stream().filter(dealCategory ->(dealCategory.getParentId() != 0)).collect(Collectors.toList());// 对根分类进行遍历操作 -------->>>>>>>> 递归操作roots.forEach(root -> buildSubs(root,subs));return roots;
}public static void buildSubs(DealCategory Parent,List<DealCategory> subs){List<DealCategory> chilren = subs.stream().filter(sub -> (sub.getParentId()==getParent.getId())).collect(Collectors.toList()); // 获取子节点中属于父节点的分类// 递归判断开始if(!Collections.isEmpt(chilren)){ // 说明是有子类Parent.setChildren(chilren); // 把该分类下的子类都构建关联关系chilren.forEach(child ->buildSubs(child,subs));// 再次递归构建}}
java8 lambda 处理分类和子分类的技巧相关推荐
- Magento 获取分类的父分类和子分类
在Magento目录的分类页面里,经常需要左侧导航获取到父分类和子分类,可以用以下方法: 打开app/your_package/your_themes/template/catalog/navigat ...
- destoon实现调用当前栏目分类及子分类和三级分类的方法
destoon实现调用当前栏目分类及子分类和三级分类的方法: 调用当前栏目分类及子分类和三级分类是程序设计里常用的方法,本文就来详细讲述destoon实现调用当前栏目分类及子分类和三级分类的方法.具体 ...
- tp3.2中怎么访问分类及子分类下面的文章
在项目开发过程中,我们可能会遇到在进入文章分类时需要遍历文章分类及文章子分类下面的文章的情况,具体解决步骤如下: 一.为便于理解,这里列出用到的表及字段 文章分类表(article_cate) 文章表 ...
- ecshop调用指定分类(包含子分类)下所有产品的评论信息
调用指定分类(包含子分类)下所有产品的评论信息,使用了ecshop系统自带的函数get_children($cat_id)调用指定分类下所有子分类的id,该自带函数在文件include/lib_com ...
- php遍历子分类的函数,emlog程序获取主分类下的所有子分类ID函数
emlog程序获取主分类下的所有子分类ID函数 蓝叶 网站设计 2021-01-04 208 0评论 emlog程序在制作模版时,需要增加一些自定义的列表调用,只设置主分类ID ...
- sdcms实现根据不同的分类下边显示子分类的导航
sdcms实现根据不同的分类下边显示子分类的导航,sdcms的字段中class_type为分为频道与列表两中分类,也就是说我们可以根据class_type来判断是调用分类还是调用分类下边的文章 当然在 ...
- java 面包屑导航_基于SpringBoot打造在线教育系统(7)-- 面包屑导航与子分类
这一节我们来讲一下面包屑导航的问题. 先看思路,当我们点击左侧的一级课程,是不是可以拿到一个ID? 这个ID的作用可大了,我们有了这个ID,本意是通过它去寻找它所有的子节点. 看图,假设[JAVA基础 ...
- php多个for并列,多个并列分类怎么用递归遍历出其所有子分并统计各自子分类个数...
从数据库的一张表中获取了一个数组,为便于分析进行了切割,切割后数组如下: $arr = array( 0 => array( 'uid' => 5, 'username' => '' ...
- 点击父分类前的图标时能够显示、折叠子分类。
试题要求: 1.页面加载完毕后隐藏所有的子分类行.其中每个tr均有两个属性cateId(分类ID).parentCateId(父分类ID).其中父分类parentCateId的值为空"&qu ...
- 抓取维基百科分类索引下某一分类下的子分类及其分类下的页面(仅限词条)
例如:游戏人工智能 子分类下的分类及其页面 代码: import json import requests from lxml import htmlw = open('thesaurus.txt', ...
最新文章
- 华为某研究生程序员哀叹:年薪五十多万,存款一百万,却不知道未来怎么走!...
- python基础知识填空-Python基础知识练习题(一)
- SprimgMVC学习笔记(十)—— 拦截器
- Floating Action Button-Android M新控件
- 命令行下jq才是JSON 处理利器呀
- java 交替_Java 8:使用交替接口公开的类型安全地图生成器
- 利用R、Octave、NumPy和SciPy求解线性方程组
- 放下十样东西,你会更优秀!
- C语言基础知识【作用域规则】
- (转)韩同利:明年A股会有一个牛市
- 觅风易语言完整教程(全集)完整高清版
- 木本坚果的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- Jetson nano 开机自动连接 Wifi
- 蓝桥杯 算法训练 合集1 C++
- c0语言语法,《Groovy语言规范》-语法
- centos7 vim查找_如何在 Vim/Vi 中快速查找和替换文本内容
- 左侧颜面部起疱,疼痛剧烈2天-牙博士
- 创龙Xilinx Zynq-7000系列SoC高性能处理器SATA接口
- 自备ACM模板 —— 数据结构篇
- linux hdmi输出快捷键,Linux 下的投影仪 HDMI 输出设置
热门文章
- 中国计算机学会推荐国际学术会议和期刊目录(2019,最新)
- Git GitHub GitLab 超全面学习笔记 -- 匠心之作
- 查看已连接的WiFi密码
- HTML5期末大作业:美食网站设计——餐饮美食-咖啡(5页) HTML5网页设计成品_学生DW静态食品网页设计_web课程设计网页制作
- STM32LL库系列教程(一)—— LL库概览及资料
- Day 23 What Drivers You Crazy
- Gary Gygax的倒台,密切关注Linux端口等
- 从谷歌搜索结果页中提取url与域名
- MayaDay1:历史记录和删除历史记录
- matlab唱歌原理,Matlab演奏菊花台的源码及原理