gpt4 book ai didi

Java 8+ 映射列表映射

转载 作者:搜寻专家 更新时间:2023-11-01 02:18:53 26 4
gpt4 key购买 nike

我有一个这样定义的列表映射:

Map<Date,List<TimesheetContribution>> groupedByDate;

TimesheetContribution 类有一个返回 double 值的方法 getHours()。

我想要的是:

Map<Date, Double> hoursMap = groupedByDate.entrySet().stream()...

其中映射值是来自 TimesheetContribution 实例的总小时数。

我能想到的唯一方法是这样的:

Map<Date, Double> toilAmounts = groupedByDate.entrySet().stream()
.collect(Collectors.toMap(Function.identity(), value -> ???));

如您所见,我在尝试定义值映射器时遇到了麻烦,我需要一个嵌套流,对此我感到不舒服。

有什么建议吗?或者我必须以老式的方式来做这件事吗?

最佳答案

你可以这样做:

Map<Date, Double> hoursMap = groupedByDate.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getKey, // for a key and not an entry
e -> e.getValue().stream()
.mapToDouble(TimesheetContribution::getHours)
.sum()));

关于Java 8+ 映射列表映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57689927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com