java查找列表相同位置的每个列表项的平均值<list<Double>>
嗨,我想找到一个双倍列表的lisf的平均值,并返回一个双倍列表,它是原始列表的平均值。我如何在java streams中做到这一点
List<Double> comupteAverage(List<List<Double>> values)
{
List<Double> averages=?;
return averages;
}
每个返回的列表项是原始列表中相同位置的每个列表项的平均值。 我希望我能正确地描述这个问题。 谢谢
# 1 楼答案
我假设所有的列表都有相同的大小。您可以使用
IntStream()
遍历和求和每个列表的同一索引上的值第一次迭代
IntStream.range(0, l1.size())
是从列表的第一项遍历到列表的末尾第二次迭代
IntStream.range(0, values.size())
是到达同一索引上的所有项:l1.get(0), l2.get(0),...
要获取总和
l1.get(0) + l2.get(0) +...
,请执行以下操作:IntStream.range(0, values.size()).mapToDouble(j -> values.get(j).get(i)).sum()
然后除以
values.size()
得到平均值试试这个:
输出: