使用 Stream API 进行平均数计算是如何工作的? [已关闭]

问题描述 投票:0回答:1

我正在学习教程,但我没有得到这部分,我们可以得到这些数字的平均值。

请您解释一下这些数字是如何计算的以及我们如何得到 7.5 结果?

//   Finding the average of the numbers squared
Arrays.stream(new int[] {1,2,3,4}).map(n -> n * n).average().ifPresent(System.out::println);

结果-> 7.5

java lambda java-stream
1个回答
2
投票

在下面查找该流正在执行的操作的详细信息

Arrays.stream(new int[] {1,2,3,4}) //Converts int[] to IntStream
.map(n -> n * n) //Squares each element of the stream, now we have 1, 4, 9, 16
.average() // Calculate average between those numbers, it's 7.5
.ifPresent(System.out::println); //We have an Optional<Double>, if it's present we print it.

所以这个解决方案对你有好处,只需去掉

.map(n -> n * n)
来计算数字的平均值,而不是它们的平方。

© www.soinside.com 2019 - 2024. All rights reserved.