java - 带有自定义键名的 Collectors.groupingBy
问题描述
我有课让我们说 CheeseMojo 有以下各个领域:
public class CheeseMojo {
private String recipies = "Recipies";
private int age;
private String name;
private int submissionId;
//getter/setter
}
现在我想使用 Collectors.groupingBy 函数根据 submitId 对其进行排序,然后下面的代码片段将完成这项工作
Map<Integer,List<CheeseMojo>> map = new HashMap<>();
map = cheeseMojos.stream().collect(Collectors.groupingBy(CheeseMojo::getSubmissionId));
输出将如下所示:
{1=[CheeseMojo@111111],2=[CheeseMojo@222222]}
但我希望我的输出如下所示:
{"Recipies1"=[CheeseMojo@111111],"Recipies2"=[CheeseMojo@222222]}
请帮忙
解决方案
为什么map
在收集之前你不只是关键(让我们说通过创建一个包装类的实例,它有
public class CheeseMojoWrapper {
private final String id;
private final CheeseMojo wrapped;
public CheeseMojoWrapper(CheeseMojo toWrap) {
id = "Recipe" + toWrap.getId();
wrapped = toWrap;
}
}
entrySet()
或在生成的地图上使用流...
推荐阅读
- google-apps-script - Google 表格:运行脚本时排除选项卡
- delphi - 如何在 dll 中定义新对象?pax编译器
- java - 通过 EAP 7.2 和 OpenJDK11 的 java.security 文件配置 java 安全提供程序的问题
- npm - 无法在 Powershell Windows 上的新 Phoenix 项目中运行“npm install”
- vb.net - 为什么我的相机没有任何反应
- python - 如何运行 Dask pypy
- java - 如何在 Spring Boot 中使用 @Valid 验证对象?
- javascript - 使用父/子路由文件的奇怪行为
- android - 在 gradle 构建工具之外运行 Android 单元测试 - 使用 java junit 命令行?
- sql - REGEXP_SUBSTR - 如何“避免”字符串中的括号