Java中如何利用Stream API计算数组的平均值?
时间: 2024-09-21 11:12:18 浏览: 63
在Java中,你可以使用Stream API的`average()`方法来计算数组的平均值。这方法适用于IntStream、DoubleStream等流,对于float数组,需要先将其转换为DoubleStream。以下是一个示例:
```java
import java.util.Arrays;
import java.util.stream.DoubleStream;
public class Main {
public static void main(String[] args) {
float[] array = {1.0f, 2.5f, 3.7f, 4.8f, 5.6f}; // 示例数组
DoubleStream stream = DoubleStream.of(array); // 将float数组转换为DoubleStream
double averageValue = stream.average().orElse(Double.NaN); // 或者使用Optional的get()方法防止null
System.out.println("Average value: " + averageValue);
}
}
```
在这个例子中,`average()`方法返回一个OptionalDouble,我们使用`orElse(Double.NaN)`获取平均值,如果流为空则返回NaN。
如果你想要直接计算float数组的平均值,可以使用`reduce()`方法,如下所示:
```java
double averageWithoutStream = Arrays.stream(array)
.boxed() // 因为reduce需要双精度浮点数,所以我们把float转换成Double
.reduce(0.0D, (a, b) -> a + b, (a, b) -> a / b);
System.out.println("Average value (without Stream API): " + averageWithoutStream);
```
阅读全文