Stream统计 SummaryStatistics
时间: 2025-01-02 11:34:25 浏览: 8
### Java Stream API 使用 `SummaryStatistics` 类进行统计计算
在 Java 中,可以借助 `IntSummaryStatistics` 或者其他类似的类(如 `DoubleSummaryStatistics` 和 `LongSummaryStatistics`),通过与 Stream API 的结合来简化集合数据的统计操作。对于整型数值的操作,通常会使用 `IntSummaryStatistics` 来获取一系列统计数据。
下面展示了一个具体的例子,该实例展示了如何创建一个包含多个整数的列表,并应用 Stream API 对这些数字执行基本的统计分析:
```java
import java.util.Arrays;
import java.util.IntSummaryStatistics;
public class StatisticsExample {
public static void main(String[] args) {
// 创建一个整数数组并转换成流
IntSummaryStatistics stats = Arrays.stream(new int[]{7, 2, 19, 88, 34})
.summaryStatistics();
// 输出统计信息
System.out.println("总数: " + stats.getCount());
System.out.println("总和: " + stats.getSum());
System.out.println("最小值: " + stats.getMin());
System.out.println("最大值: " + stats.getMax());
System.out.println("平均值: " + stats.getAverage());
}
}
```
上述代码片段中,`Arrays.stream()` 方法被用来将给定的数组转化为一个流对象;接着调用了 `summaryStatistics()` 方法返回一个新的 `IntSummaryStatistics` 实例,它包含了遍历整个流过程中累积下来的统计摘要[^1]。
此外,在 JDK 8 中引入了 `SummaryStatistics` 类,这使得开发者能够更加方便地收集关于一组数值的关键指标,而无需手动编写额外逻辑去维护计数器或其他辅助变量[^3]。
当涉及到自定义统计需求时,也可以继承 `IntSummaryStatistics` 并重写其方法以适应特定场景下的业务规则。
阅读全文