第六章 用流收集数据

本文介绍了Java Stream的collect操作,它使用Collector接口对流数据进行汇总。Collector接口包括流中元素类型T、累积中间结果类型A和最终结果类型R。预定义的Collectors类提供各种实用的收集器,如计算最小值、最大值和平均值。此外,收集器可以通过复合进行复杂的分组、分区和规约,同时允许开发自定义收集器。
摘要由CSDN通过智能技术生成

1、Collect是一个终端操作,它接受的参数是将流中元素累计到汇总结果的各种方式(称为收集器,对应参数的函数式接口是Collector<T, A, R>)

2、Collector<T, A, R>:其中T、A、R分别是流中元素的类型、用于累积部分结果的对象类型,collect操作最终结果的类型。

3、预定义收集器java.util.steam.Collectors:包含将流元素归约和汇总到一个值,例如计算最小值、最大值或平均值。总结如下:

a)、Collector<T, ?, List<T>> toList();

    把流中所有项目收集到一个List中。

b)、Collector<T, ?, Set<T>> toSet();

    把流中所有项目收集到一个Set中(不会出项重复项)。

c)、Collector<T, ?, C> toCollection(Supplier<C> collectionFactory);

    把流中所有项目收集到给定的供应源创建的集合中。

d)、Collector<T, ?, Long> counting();

    计算流中元素的个数。

e)、Collector<T, ?, Integer> summingInt(ToIntFunction<? super T> mapper);

    对流中项目的一个整数属性求和。

f)、Collector<T, ?, Double> averagingInt(ToIntFunction<? super T> mapper);

    对流中项目的Integer属性计算平均值。

g)、Collector<T, ?, IntSummaryStatistics> summarizingInt(ToIntFunction<? super T> mapper);

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值