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()来完成我的需求,但是我想知道有没有什么办法可以更简单的处理?### 问题描述
问题出现的环境背景及自己尝试过哪些方法
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
你期待的结果是什么?实际看到的错误信息又是什么?