java8 lambda 处理分类和子分类的技巧
来源:互联网 发布:c语言能够做什么 编辑:程序博客网 时间:2024/05/02 01:35
public List<DealCategory> getCategories(){ List<DealCategory> roots = getAllWithoutDeleted(); // 这条语句可能是从缓存中或者是从数据库中直接拉去符合条件的数据 dealCategories.stream().filter(dealCategory -> (dealCategory.getParentId() == 0)).collect(Collectors.toList()); // 过滤出 父节点为0 所有分类 // 对所有分类进行排序 dealCategories.sort(new Comparator<DealCategory>(){ @Override public 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));// 再次递归构建 }}
阅读全文
1 0
- java8 lambda 处理分类和子分类的技巧
- 感冒的分类和处理
- 感冒的分类和处理
- Java8 的lambda 和 Stream
- 子查询的分类
- 分类的树状处理
- 学习Java8中Lambda表达式的10个例子
- Java8中Lambda表达式的10个例子
- Java8中Lambda表达式的10个例子
- Java8中Lambda表达式的10个例子
- Magento获取指定分类下的产品和获取子分类及产品数量
- Java8的lambda(1)
- Java8的lambda(2)
- Java8的lambda(3)
- Java8的lambda(3)
- java8的lambda表达式
- Java8 lambda的列子
- 子段和分类 前缀和 dp
- angular路由
- 当程序员没了互联网,该如何继续学习写代码?
- 大一新生信息可视化展示(基于Echarts)
- Spring教程第四篇:Spring事务
- 宏的使用
- java8 lambda 处理分类和子分类的技巧
- Unity3D 屏幕比例与摄像机设置
- Linux下find、awk、sed、grep命令的例子
- PullToRefreshListView布局属性及java代码应用
- PullToRefresh界面刷新
- 记一次网易前端实习面试
- 51nod 1285 山峰和分段 -查找
- WC2006水管局长(加强)
- AngularJs 表单