stream 分组(group)和map的值映射mapping

1
2
3
4
5
6
@Data
public class MiddleFloorDto {
    private Long middleId;
    private Long floorId;
    private Long landingpageId;
}

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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())));
1
2
3
4
5
6
<br><br>  /* [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*/<br>测试结果符合预期。
posted @   三号小玩家  阅读(1099)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
Title
三号小玩家的 Mail: 17612457115@163.com, 联系QQ: 1359720840 微信: QQ1359720840

喜欢请打赏

扫描二维码打赏

支付宝打赏

点击右上角即可分享
微信分享提示