Collectors.summarizingLong用于提取流中元素的long值并生成包含计数、总和、最值和平均值的LongSummaryStatistics对象,适用于需一次性获取多项统计指标的场景。

在Java中,Collectors.summarizingLong 是 java.util.stream.Collectors 类提供的一个归约操作方法,用于对流中的元素提取 long 值并生成一个 LongSummaryStatistics 对象。这个对象包含了统计信息:计数(count)、总和(sum)、最小值(min)、最大值(max)和平均值(average)。
public static <T> Collector<T, ?, LongSummaryStatistics> summarizingLong(ToLongFunction<? super T> mapper)
参数说明:
ToLongFunction,用于从流中的每个元素提取一个 long 值。summarizingLong 后会返回一个 LongSummaryStatistics 实例,它提供以下方法获取统计值:
import java.util.*;
import java.util.stream.Collectors;
class User {
private String name;
private long age;
public User(String name, long age) {
this.name = name;
this.age = age;
}
public long getAge() {
return age;
}
// getter 和 setter 省略
}
public class Main {
public static void main(String[] args) {
List<User> users = Arrays.asList(
new User("Alice", 30),
new User("Bob", 25),
new User("Charlie", 35),
new User("Diana", 28)
);
LongSummaryStatistics stats = users.stream()
.collect(Collectors.summarizingLong(User::getAge));
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());
}
}
总人数: 4
总年龄: 118
最小年龄: 25
最大年龄: 35
平均年龄: 29.5
count 为 0,sum 为 0,min 为 Long.MAX_VALUE,max 为 Long.MIN_VALUE,average 为 0.0 —— 使用时注意判断是否为空。sum()、max() 等单独计算多次。以上就是Java里如何使用Collectors.summarizingLong统计Long数据_Long数据汇总方法说明的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号