zoukankan      html  css  js  c++  java
  • stream 分组(group)和map的值映射mapping

    @Data
    public class MiddleFloorDto {
        private Long middleId;
        private Long floorId;
        private Long landingpageId;
    }
    

      

    public class Main {
        public static void main(String[] args) {
            ArrayList<MiddleFloorDto> list = new ArrayList<>();
              MiddleFloorDto dto1 = new MiddleFloorDto();
            dto1.setFloorId(1l);
            dto1.setLandingpageId(1l);
              MiddleFloorDto dto2 = new MiddleFloorDto();
            dto2.setFloorId(12l);
            dto2.setLandingpageId(2l);
              MiddleFloorDto dto3 = new MiddleFloorDto();
            dto3.setFloorId(8l);
            dto3.setLandingpageId(2l);
              MiddleFloorDto dto4 = new MiddleFloorDto();
              dto4.setMiddleId(2l);
            dto4.setLandingpageId(3l);
               MiddleFloorDto dto5 = new MiddleFloorDto();
               dto5.setFloorId(2l);
            dto5.setLandingpageId(4l);
              MiddleFloorDto dto6 = new MiddleFloorDto();
              dto6.setFloorId(4l);
            dto6.setLandingpageId(2l);
              MiddleFloorDto dto7 = new MiddleFloorDto();
              dto7.setFloorId(6l);
            dto7.setLandingpageId(2l);
            list.add(dto7);
            list.add(dto6);
            list.add(dto5);
            list.add(dto4);
            list.add(dto3);
            list.add(dto2);
            list.add(dto1);
             Map<Long, List<MiddleFloorDto>> collect = list.stream().collect(Collectors.groupingBy(MiddleFloorDto::getLandingpageId));
             System.out.println(collect.get(1l));
            System.out.println(collect.get(2l));
            System.out.println(collect.get(3l));
            System.out.println(collect.get(4l));
            System.out.println(collect.get(5l));
            System.out.println(collect.get(6l));
         }
    

      

    list.stream() .collect(Collectors.groupingBy(MiddleFloorDto::getLandingpageId, Collectors.mapping(MiddleFloorDto::getFloorId, Collectors.toList())));
     

    /* [MiddleFloorDto{middleId=null, floorId=1, landingpageId=1}] [MiddleFloorDto{middleId=null, floorId=6, landingpageId=2}, MiddleFloorDto{middleId=null, floorId=4, landingpageId=2}, MiddleFloorDto{middleId=null, floorId=8, landingpageId=2}, MiddleFloorDto{middleId=null, floorId=12, landingpageId=2}] [MiddleFloorDto{middleId=2, floorId=null, landingpageId=3}] [MiddleFloorDto{middleId=null, floorId=2, landingpageId=4}] null null*/
    测试结果符合预期。

    本文来自博客园,作者:三号小玩家,转载请注明原文链接:https://www.cnblogs.com/q1359720840/p/15779908.html

  • 相关阅读:
    伪句柄
    WM_NCACTIVE
    怎么让模态对话框最小化时,主窗口也最小化
    CMap和CArray中ARG_
    看着嫦娥2号上去,心里激动不已
    Qt中使两个部件同步,这里为spin和slider
    memcpy 和strcpy的区别
    如何在linux内核中读写文件
    Could not find *****/adb.exe!的解决方法(android sdk太新了?**#¥)
    加入了HTML特点的Qt,出来的效果不错哟
  • 原文地址:https://www.cnblogs.com/q1359720840/p/15779908.html
Copyright © 2011-2022 走看看