在Java Stream API中,sum()和average()是两个常用的数值聚合方法,但它们的使用有一些特殊要求和注意事项。
sum()方法
- 返回流中所有元素的总和
- 返回值类型与流类型一致(int/long/double)
- 空流时返回0
average()方法
- 返回OptionalDouble类型,包含所有元素的平均值
- 空流时返回OptionalDouble.empty()
// 示例代码
IntStream intStream = IntStream.of(1, 2, 3, 4, 5);
int sum = intStream.sum(); // 返回15
DoubleStream doubleStream = DoubleStream.of(1.0, 2.0, 3.0);
OptionalDouble avg = doubleStream.average(); // 返回OptionalDouble[2.0]
// 从集合转换示例
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream()
.mapToInt(Integer::intValue)
.sum(); // 返回15
注意事项:1)必须在数值特化流上调用;2)average()返回Optional类型,需要适当处理空流情况;3) 与mapToInt/mapToDouble等转换方法配合使用。
合理使用这些方法可以写出更简洁、高效的数值处理代码,同时避免空指针异常。
206

被折叠的 条评论
为什么被折叠?



