gpt4 book ai didi

java - 通过属性将 map 的列表值转换为其平均值

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:07:08 25 4
gpt4 key购买 nike

我从 Map<String,List<Rating>> 开始.评级有一个方法int getValue() .

我想以 Map<String,Integer> 结尾其中整数值是所有 Rating.getValue() 的平均值按原始 Map<String,List<Rating>> 中的键分组的值.

我很高兴收到有关如何解决此问题的一些想法。

最佳答案

可以使用IntStream 对整数集合执行聚合操作。方法。在你的情况下,average似乎是正确的使用方法(注意它返回一个 Double ,而不是 Integer ,这似乎是一个更好的选择)。

你想要的是将原始映射的每个条目转换为新映射中的条目,其中键保持不变,值是 List<Rating> 的值的平均值元素。可以使用 toMap 生成输出映射。 Collector .

Map<String,Double> means =
inputMap.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getKey,
e->e.getValue()
.stream()
.mapToInt(Rating::getValue)
.average()
.orElse(0.0)));

关于java - 通过属性将 map 的列表值转换为其平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39470466/

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