java多层map嵌套取值,Java Stream 如何实现多层map嵌套

Class Template {

private int id;

private string type;

private int mapId;

private String name;

private int platId;

}

例如一个template的集合,要通过stream的方式转成三层的map嵌套结构,怎么实现?

比如:

{

"${type}": {

"${platId}": [

{

"id": "${mapId}",

"name": "${name}"

}

]

}

}

或者是:

{

"${type}": {

"${platId}":{

"id": "${mapId}",

"name": "${name}"

}

}

}

目前我能做的结果就是通过多层groupingBy来实现,但是在最后一层里的数据我没办法自定义,toMap和toList都不满足我的需求。

list.stream().collect(Collectors.groupingBy(Template::getType,Collectors.groupingBy(Template::getPlatId, Collectors.toList)));

当前的解决办法就是通过list.stream().forEach()来完成我的需求,但是我想知道有没有什么办法可以更简单的处理?### 问题描述

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值