归约分组与分区,深入讲解JavaStream终结操作

Posted 和耳朵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了归约分组与分区,深入讲解JavaStream终结操作相关的知识,希望对你有一定的参考价值。

思维导图镇楼。

上一篇中给大家讲了Stream的前半部分知识——包括对Stream的整体概览及Stream的创建和Stream的转换流操作,并对Stream一些内部优化点做了简明的说明。

虽迟但到,今天就来继续给大家更Stream第二部分知识——终结操作,由于这部分的API内容繁多且复杂,所以我单开一篇给大家细细讲讲。

正式开始之前,我们先来说说聚合方法本身的特性(接下来我将用聚合方法代指终结操作中的方法):

  1. 聚合方法代表着整个流计算的最终结果,所以它的返回值都不是Stream。
  2. 聚合方法返回值可能为空,比如filter没有匹配到的情况,JDK8中用Optional来规避NPE。
  3. 聚合方法都会调用evaluate方法,这是一个内部方法,看源码的过程中可以用它来判定一个方法是不是聚合方法。

ok,知晓了聚合方法的特性,我为了便于理解,又将聚合方法分为几大类:

其中简单聚合方法我会简单讲解,其它则会着重讲解,尤其是收集器,它能做的实在太多了。。。

Stream的聚合方法是我们在使用Stream中的必用操作,认真学习本篇,不说马上就能对Stream得心应手,起码也可以行云流水吧

以上是关于归约分组与分区,深入讲解JavaStream终结操作的主要内容,如果未能解决你的问题,请参考以下文章

延迟执行与不可变,系统讲解JavaStream数据处理

延迟执行与不可变,系统讲解JavaStream数据处理

延迟执行与不可变,系统讲解JavaStream数据处理

终结篇:MyBatis原理深入解析

第七篇:数据预处理 - 数据归约(PCA/EFA为例)

终结篇:MyBatis原理深入解析