我有带有以下字段的对象列表:
public final UUID uuid;
public final LocalDate date;
public final long value;
并且我想将其转换为Map<UUID, Map<LocalDate, Long>>
,但同时我需要按日期对值求和。
因此具有这样的数据:
UUID | LocalDate | Long
uuid1| 2012-12-10| 100
uuid1| 2012-12-11| 200
uuid2| 2012-12-10| 300
uuid2| 2012-12-10| 200
我想要:
uuid1: {
[2012-12-10, 100],
[2012-12-11, 200]
},
uuid2: {
[2012-12-10, 500]
}
是否可以使用Stream API实现此目标?
如果您的班级看起来像这样,则使用setter和getters
public class SomeObject { public UUID uuid; public LocalDate date; public Long value;
您可以使用
Collectors.groupingBy
的变体,该变体接受分类器功能,并使用另一个收集器对uuid进行分组并收集要映射的对象