steam流取平均值
时间: 2024-12-16 10:08:45 浏览: 7
在Java中,如果你想通过Stream对一个数值型集合求平均值,你可以使用`average()`方法。这个方法返回一个`OptionalDouble`,因为可能存在空列表的情况。下面是示例:
```java
import java.util.Arrays;
import java.util.List;
import java.util.OptionalDouble;
public class Main {
public static void main(String[] args) {
List<Double> numbers = Arrays.asList(10.5, 20.0, 15.7, 25.3);
OptionalDouble average = numbers.stream()
.mapToDouble(Double::doubleValue) // 转换为double以便计算
.average();
if (average.isPresent()) { // 判断是否存在结果
double mean = average.getAsDouble(); // 获取平均值
System.out.println("平均值: " + mean);
} else {
System.out.println("列表为空或所有元素为null,无法计算平均值");
}
}
}
```
在上述代码中,`.mapToDouble(Double::doubleValue)`用于将每个元素转换为double类型,方便后续的平均值计算。如果列表不为空并且至少有一个非null元素,`average().getAsDouble()`会提供平均值。
阅读全文