您当前的位置: 首页 >  Java

qq_34412985

暂无认证

  • 2浏览

    0关注

    1061博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

java8 stream代替for循环 sort多字段排序 group by多级排序

qq_34412985 发布时间:2019-01-04 21:27:46 ,浏览量:2

List list = new ArrayList();

Category ctg= new Category();

ctg.setType(1);//0商品,1销售规格

ctg.setSort(2);

ctg.setInheritFlag(0);//0继承属性1非继承属性

ctg.setValueSort(1)

Category ctg1= new Category();

ctg1.setType(0);//0商品,1销售规格

ctg1.setSort(1);

ctg1.setInheritFlag(1);//0继承属性1非继承属性

ctg1.setValueSort(2)

list.add(ctg);

list.add(ctg1);

                lista.stream().sorted(Comparator.comparing(Category::getSort()).thenComparing(Category::getValueSort())).collect(Collectors.groupingBy(fetchGroupInheritKey(mtg)),Collectors.groupingBy(fetchGroupTypeKey(mtg)));

private String fetchGroupInheritKey(Category ctg){                 if(inheritFlag==0){                     return "inheritList";                 }else if(inheritFlag==1){                     return "ownList";                 }else{                     return "";                 }                              }

使用Comparator实现多字段排序和多级分组,前面的sort排序会影响后面的groupBy分组后的list中的排序

mcvo中有有多个property List ,按商品属性和销售属性区分将多个小list聚合为一个list

mc V o list.stream(). flat Map(mc vo→mcvo.getPropertyList(). stream ())

关注
打赏
1653291990
查看更多评论
立即登录/注册

微信扫码登录

0.0386s