《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一1.8 收集结果
JAVA 10 特性 高级 结果 收集 核心技术 原书
2023-09-27 14:24:37 时间
1.8 收集结果
产生一个用于获取当前流中各个元素的迭代器。这是一种终结操作。
在流的每个元素上调用action。这是一种终结操作。 Object[] toArray() A[] toArray(IntFunction generator)
产生一个对象数组,或者在将引用A[]::new传递给构造器时,返回一个A类型的数组。这些操作都是终结操作。 R collect(Collector ? super T,A,R collector)
使用给定的收集器来收集当前流中的元素。Collectors类有用于多种收集器的工厂方法。
产生一个将元素收集到列表或集中的收集器。
产生一个连接字符串的收集器。分隔符会置于字符串之间,而第一个字符串之前可以有前缀,最后一个字符串之后可以有后缀。如果没有指定,那么它们都为空。 static Collector summarizingInt(ToIntFunction ? super T mapper) static Collector summarizingLong (ToLongFunction ? superT mapper) static Collector summarizingDouble (ToDoubleFunction ? super T mapper)
产生能够生成(Int|Long|Double)SummaryStatistics对象的收集器,通过它可以获得将mapper应用于每个元素后所产生的结果的个数、总和、平均值、最大值和最小值。
DoubleSummaryStatistics 8
产生汇总后的元素的总和或平均值,或者在没有任何元素时返回0。 (int|long|double) getMax() (int|long|double) getMin()
产生汇总后的元素的最大值和最小值,或者在没有任何元素时,产生(Integer| Long|Double).(MAX|MIN)_VALUE。
当处理完流之后,通常会想要查看其元素。此时可以调用iterator方法,它会产生可以用来访问元素的旧式风格的迭代器。
或者,可以调用forEach方法,将某个函数应用于每个元素:
在并行流上,forEach方法会以任意顺序遍历各个元素。如果想要按照流中的顺序来处理它们,可以调用forEachOrdered方法。当然,这个方法会丧失并行处理的部分甚至全部
优势。
但是,更常见的情况是,我们想要将结果收集到数据结构中。此时,可以调用toArray,获得由流的元素构成的数组。
因为无法在运行时创建泛型数组,所以表达式stream.toArray()会返回一个Object[]数组。如果想要让数组具有正确的类型,可以将其传递到数组构造器中:
针对将流中的元素收集到另一个目标中,有一个便捷方法collect可用,它会接受一个Collector接口的实例。Collectors类提供了大量用于生成公共收集器的工厂方法。为了将流收集到列表或集中,可以直接调用
java.util.stream.BaseStream 8
Iterator iterator()产生一个用于获取当前流中各个元素的迭代器。这是一种终结操作。
程序清单1-4中的示例程序展示了如何从流中收集元素。
程序清单1-4 collecting/CollectingResults.java
java.util.stream.Stream 8
void forEach(Consumer ? super T action)在流的每个元素上调用action。这是一种终结操作。 Object[] toArray() A[] toArray(IntFunction generator)
产生一个对象数组,或者在将引用A[]::new传递给构造器时,返回一个A类型的数组。这些操作都是终结操作。 R collect(Collector ? super T,A,R collector)
使用给定的收集器来收集当前流中的元素。Collectors类有用于多种收集器的工厂方法。
java.util.stream.Collectors 8
static Collector toList() static Collector toSet()产生一个将元素收集到列表或集中的收集器。
static Collector toCollection (Supplier collectionFactory)
产生一个将元素收集到任意集合中的收集器。可以传递一个诸如TreeSet::new的构造器引用。
产生一个连接字符串的收集器。分隔符会置于字符串之间,而第一个字符串之前可以有前缀,最后一个字符串之后可以有后缀。如果没有指定,那么它们都为空。 static Collector summarizingInt(ToIntFunction ? super T mapper) static Collector summarizingLong (ToLongFunction ? superT mapper) static Collector summarizingDouble (ToDoubleFunction ? super T mapper)
产生能够生成(Int|Long|Double)SummaryStatistics对象的收集器,通过它可以获得将mapper应用于每个元素后所产生的结果的个数、总和、平均值、最大值和最小值。
IntSummaryStatistics 8
LongSummaryStatistics 8DoubleSummaryStatistics 8
long getCount()
产生汇总后的元素的个数。?
产生汇总后的元素的总和或平均值,或者在没有任何元素时返回0。 (int|long|double) getMax() (int|long|double) getMin()
产生汇总后的元素的最大值和最小值,或者在没有任何元素时,产生(Integer| Long|Double).(MAX|MIN)_VALUE。
相关文章
- Effective Java 第三版——10. 重写equals方法时遵守通用约定
- Java 8 创建 Stream 的 10 种方式,我保证你受益无穷!
- 极客日报第97期:谷歌胜诉!10年Java版权案终结;邀请多人助力“砍价免费拿”未成功,拼多多遭起诉|极客头条
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一第1章 Java SE 8的流库
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一1.4 抽取子流和连接流
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一1.5 其他的流转换
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一1.7 Optional类型
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一1.12 约简操作
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.1.1 读写字节
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.1.2 完整的流家族
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.1.3 组合输入/输出流过滤器
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.2 文本输入与输出
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.2.3 以文本格式存储对象
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.3 读写二进制数据
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.3.3 ZIP文档
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.4 对象输入/输出流与序列化
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.4.2 理解对象序列化的文件格式
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.4.6 为克隆使用序列化
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.5 操作文件
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.5.6 访问目录中的项
- 这是一套Java菜鸟到大牛的学习路线之高级教程,由工作了10年的资深Java架构师整理。
- 【Java】『蓝桥杯』10道编程题及答案(二)
- Java JDK11 通过jabba在windows 10上安装
- Java 10的10个新特性,将彻底改变你写代码的方式!