java - 使用 Java 8 按两个字段对对象进行分组
问题描述
我在使用 Java 8 对两个值进行分组时遇到问题。
我的主要问题是对两个字段进行分组,我正确地将一个字段分组,getNameOfCountryOrRegion()
但现在我对groupingBy
另一个也被调用leagueDTO
的字段感兴趣。
Map<String, List<FullCalendarDTO>> result = countryDTOList.stream()
.collect(Collectors.groupingBy(
FullCalendarDTO::getNameOfCountryOrRegion));
以及以下课程:
public class FullCalendarDTO {
private long id;
private TeamDTO localTeam;
private TeamDTO visitorTeam;
private LocationDTO location;
private String leagueDTO;
private String timeStamp;
private String nameOfCountryOrRegion;
}
结果将按 和nameOfCountryOrRegion
分组leagueDTO
。
解决方案
downstream
将收集器传递给groupingBy
将起到作用:
countryDTOList.stream()
.collect(groupingBy(FullCalendarDTO::getNameOfCountryOrRegion,
groupingBy(FullCalendarDTO::getLeagueDTO)));
上面的代码片段会将您的FullCalendarDTO
对象nameOfCountryOrRegion
分组,然后每个组将按leagueDTO
.
所以返回的集合看起来像Map<String, Map<String, List<FullCalendarDTO>>>
.
推荐阅读
- reactjs - 使用 React + TS + Storybook + Rollup 制作包问题
- python - Flask:如何清楚地显示数据库中的数据
- android - java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution
- android - Android:我如何在 jetpack compose 中使用片段进行底部导航
- c# - 异常和消息框
- sql - 将行转换为列 SQL 查询
- scala - 在火花中使用带有 toCharArray 的 flatMap 时找不到 Encode[Char]
- python - 使用自动生成的密码自动填充 Django 注册页面
- jquery - Typescript 编译器无法找到 Jquery 类型定义,即使它们已经安装
- javascript - 如何使用javascript从数组中删除重复项