数据采集的方式(读Java实战(第二版)笔记04_用流收集数据)

Posted

篇首语:桃李不言,下自成蹊。本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据采集的方式(读Java实战(第二版)笔记04_用流收集数据)相关的知识,希望对你有一定的参考价值。

数据采集的方式(读Java实战(第二版)笔记04_用流收集数据)

读Java实战(第二版)笔记04_用流收集数据

1.方便程序员和可读性是头等大事!

1.1.函数式API设计更易复合和重用

2.归约和汇总为一个值

2.1.counting()

2.1.1.计数

2.2.maxBy

2.2.1.查找流中的最大值

2.3.minBy

2.3.1.查找流中的最小值

2.4.summingInt

2.4.1.可接受一个把对象映射为求和所需int的函数,并返回一个收集器

2.5.summingLong

2.5.1.可接受一个把对象映射为求和所需long的函数,并返回一个收集器

2.6.summingDouble

2.6.1.可接受一个把对象映射为求和所需double的函数,并返回一个收集器

2.7.求和

2.8.averagingInt

2.9.averagingLong

2.10.averagingDouble

2.11.平均值

2.12.summarizing

2.13.summarizingInt

2.13.1.IntSummary Statistics类型

2.14.summarizingLong

2.14.1.LongSummary Statistics类型

2.15.summarizingDouble

2.15.1.DoubleSummaryStatistics类型

2.16.数出元素的个数,并得到总和、平均值、最大值和最小值

2.17.joining

2.17.1.连接

2.17.2.重载版本可以接受元素之间的分界符

2.18.reducing

2.18.1.归约

2.18.2.旨在把两个值结合起来生成一个新值,它是一个不可变的归约

2.18.3.使用泛型?通配符

2.18.3.1.累加器本身可以是任何类型

2.18.4.使用允许提供默认值的方法,如orElse或orElseGet来解开Optional中包含的值更为安全

2.19.collect

2.19.1.适合并行操作

2.19.2.特别适合表达可变容器上的归约

3.元素分组

3.1.“桶”

3.2.groupingBy

3.2.1.传递了一个Function(以方法引用的形式)

3.2.1.1.Function是分类函数

3.2.2.单参数groupingBy(f)

3.2.2.1.双参数groupingBy(f, toList())的简便写法

3.2.3.双参数

3.2.3.1.第二变量也接受一个Collector类型的参数

3.2.3.2.过滤谓词挪到了第二个Collector中

3.2.3.3.第二个收集器可以是任何类型,而不一定是另一个groupingBy

3.3.多级分组

3.3.1.由双参数版本的groupingBy工厂方法创建的收集器

4.元素分区

4.1.分组的特殊情况

4.1.1.使用返回一个布尔值的单参数函数的谓词作为分组函数(分区函数)

4.1.2.保留了分区函数返回true或false的两套流元素列表

4.2.partitioningBy

4.2.1.可传递第二个收集器

5.转换为另一种类型

5.1.collectingAndThen

5.2.要转换的收集器以及转换函数,并返回另一个收集器

6.收集器接口

6.1.

        public interface Collector<T, A, R>             Supplier<A> supplier();            BiConsumer<A, T> accumulator();            Function<A, R> finisher();            BinaryOperator<A> combiner();            Set<Characteristics> characteristics();        

6.1.1.说明

6.1.1.1.T是流中要收集的项目的泛型

6.1.1.2.A是累加器的类型,累加器是在收集过程中用于累积部分结果的对象

6.1.1.3.R是收集操作得到的对象(通常但并不一定是集合)的类型

6.2.supplier方法

6.2.1.必须返回一个结果为空的Supplier,也就是一个无参数函数,在调用时它会创建一个空的累加器实例,供数据收集过程使用

6.3.accumulator方法

6.3.1.会返回执行归约操作的函数

6.4.finisher方法

6.4.1.必须返回在累积过程的最后要调用的一个函数,以便将累加器对象转换为整个集合操作的最终结果

6.4.2.identity函数

6.4.2.1.恒等函数

6.4.2.2.一个函数仅仅是返回其输入参数

6.5.combiner方法

6.5.1.会返回一个供归约操作使用的函数

6.6.characteristics方法

6.6.1.会返回一个不可变的Characteristics集合

6.6.2.定义了收集器的行为

6.6.2.1.UNORDERED

6.6.2.1.1.归约结果不受流中项目的遍历和累积顺序的影响

6.6.2.2.CONCURRENT

6.6.2.2.1.accumulator函数可以从多个线程同时调用,且该收集器可以并行归约流

6.6.2.2.2.如果收集器没有标为UNORDERED,那它仅在用于无序数据源时才可以并行归约

6.6.2.3.IDENTITY_FINISH

6.6.2.3.1.表明完成器方法返回的函数是一个恒等函数,可以跳过

6.7.进行自定义收集而不去实现Collector

6.7.1.collect方法可以接受另外三个函数——supplier、accumulator和combiner,其语义和Collector接口的相应方法返回的函数完全相同

7.Collectors类的静态工厂方法

7.1.import static java.util.stream.Collectors.*;

7.2.toList

7.2.1.把流中所有的元素收集到一个List中

7.3.mapping

7.3.1.提供了另一个Collector函数,它接受一个映射函数和另一个Collector函数作为参数

7.3.2.使用一个映射函数对它们进行转换

7.4.filtering

7.4.1.接受一个谓词对每一个分组中的元素执行过滤操作

7.5.toCollection

7.5.1.对于是什么类型有更多的控制

7.6.

相关参考

机械制图第二版机械工业出版社(22年天津中环信息学院专升本机械设计自动化专业机械制图考试大纲)

...高职升本科考生而设置的具有选拔性质的考试科目。考核方式为闭卷考试。本课程考试试题类型有填空题、选择题、判断题、简答题和作图题。本次考试是测试考生在机械制图技能方面的能力。要求考生掌握机械制图的基础知识...

机械计时仪器第二版(把时间尽收眼中,全镂空机械表,男人有腕玺佳有范)

...创设计师品牌,在机械表设计的理念上拥有着非常独特的方式。此次推出的玺佳机械表·Z系列在外观上打破了非方即圆的传统设计,采用整体流畅的线条来勾勒出酒

机械工程测试技术第二版(机械工程中的位移测量有多重要?用到了哪些传感器?)

...这些新型的传感器发展十分迅速,改变了传统的位移测量方式,提供了很多新的思路。

数据类型有哪些(8、Java中的数据类型)

Java中的数据类型作者:韩茹公司:程序咖(北京)科技有限公司程序咖:IT职业技能评测平台网址:https://www.chengxuka.com任务 1.数据类型的分类 2.基本数据类型有哪些 3.每种基本数据类型所占用的内存空间以及取值范...

彩色硅胶管(《话说欧鲤钓》第二版 线材篇)

尼龙线概述尼龙钓鱼线可能是你最重要的装备,然而许多钓鱼者对于它是什么,它是如何制造的,以及这个关键要素的属性知之甚少。尼龙线是一种挤出聚合物,耐用、耐老化和防腐。它非常稳定,不受微生物或其它天然物质的...

液压管路冲洗压力(水质工程学第二版上总复习)

二章绪论水质:水及其所含杂质共同表现出的物理、化学特征。杂质的来源分为:自然过程和人为因素。杂质的分类按尺寸大小分为:(1)悬浮物(重力沉降法去除);胶体(投混凝剂去除);溶解物(物理化学去除)。悬浮...

液压管路冲洗压力(水质工程学第二版上总复习)

二章绪论水质:水及其所含杂质共同表现出的物理、化学特征。杂质的来源分为:自然过程和人为因素。杂质的分类按尺寸大小分为:(1)悬浮物(重力沉降法去除);胶体(投混凝剂去除);溶解物(物理化学去除)。悬浮...

扩散工艺的主要目的(金属学与热处理(第二版)课后习题答案+复习提纲)

第一章1.作图表示出立方晶系(123)、(0-1-2)、(421)等晶面和[-102]、[-211]、[346]等晶向编辑切换为居中添加图片注释,不超过140字(可选)3.某晶体的原子位于正方晶格的节点上,其晶格常数a=b≠c,c=2/3a。今有一晶面在X、Y、Z...

戴尔硬盘(戴尔硬盘维修_戴尔笔记本电脑硬盘的分区设置)

【戴尔售后维修中心】戴尔新的硬盘不能直接使用,必须先进行格式化。在安装操作系统之前还要对格式化的硬盘进行分区。对硬盘分区就是将硬盘划分成若干个小的区域。目前硬盘的容量比过去大了许多,有计划地进行分区,...

机械故障诊断技术第二版课后答案(梦天实验舱成功发射看点)

新华社北京10月31日电题:梦天实验舱成功发射看点新华社“新华视点”记者10月31日,搭载空间站梦天实验舱的长征五号B遥四运载火箭,在我国文昌航天发射场点火发射。新华社记者胡智轩摄10月31日下午,中国空间站第三个舱...