Java里如何使用Collectors.summarizingLong统计Long数据_Long数据汇总方法说明

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

java里如何使用collectors.summarizinglong统计long数据_long数据汇总方法说明

在Java中,Collectors.summarizingLongjava.util.stream.Collectors 类提供的一个归约操作方法,用于对流中的元素提取 long 值并生成一个 LongSummaryStatistics 对象。这个对象包含了统计信息:计数(count)、总和(sum)、最小值(min)、最大值(max)和平均值(average)。

1. 方法基本语法

该方法的定义如下:

public static Collector summarizingLong(ToLongFunction mapper)

Pic Copilot Pic Copilot

AI时代的顶级电商设计师,轻松打造爆款产品图片

Pic Copilot 158 查看详情 Pic Copilot

参数说明:

mapper:是一个函数式接口 ToLongFunction,用于从流中的每个元素提取一个 long 值。

2. 返回结果:LongSummaryStatistics

调用 summarizingLong 后会返回一个 LongSummaryStatistics 实例,它提供以下方法获取统计值:getCount():元素数量 getSum():所有值的总和 getMin():最小值(若无元素,默认为 Long.MAX_VALUE) getMax():最大值(若无元素,默认为 Long.MIN_VALUE) getAverage():平均值(若无元素,默认为 0.0)

3. 使用示例

假设有一个用户列表,每个用户有年龄字段(用 long 表示),我们想统计这些用户的年龄汇总信息:

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 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

4. 注意事项与适用场景

适用于需要一次性获取多个统计指标的场景,避免多次遍历流。 输入流为空时,count 为 0,sum 为 0,minLong.MAX_VALUEmaxLong.MIN_VALUEaverage 为 0.0 —— 使用时注意判断是否为空。 性能优于分别使用 sum()max() 等单独计算多次。基本上就这些。这个方法简洁高效,适合处理需要综合统计 long 类型数据的业务逻辑。

以上就是Java里如何使用Collectors.summarizingLong统计Long数据_Long数据汇总方法说明的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1056536.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月2日 05:00:20
下一篇 2025年12月2日 05:00:41

相关推荐

发表回复

登录后才能评论
关注微信