Stream流式处理详解(通俗易懂)

Stream介绍在没有Stream之前,我们普遍都是使用for循环对集合或者数组进行处理,过程繁琐且代码凌乱,Stream流就很好的解决了这个问题。是我们的代码看起来更加的优雅!

Stream流式处理详解(通俗易懂)_第1张图片

优点:

1.直接阅读代码的字面意思即可完美展示无关逻辑方式的语义。

2.Stream流把真正的函数式编程风格引入到Java中,使我们的代码更加简洁且优雅。

好了!我们开始进入正题吧,来看一下Stream流的优雅吧!

------------------------------------------------------------->

 首先我们在集合中添加一些数据,过滤出开头为李的名称并且只要长度为2的数据。

Stream流式处理详解(通俗易懂)_第2张图片

优雅~~~

来画图深刻的理解一下吧!

Stream流式处理详解(通俗易懂)_第3张图片

Stream流的三类方法

获取Stream:流创建一条流水线,并把数据放到流水线上准备。

中间方法流水线上的操作一次操作完毕之后,还可以继续进行其他操作。

终结方法:一个Stream流只能有一个终结方法是流水线上的最后一个操作。

生成Stream流的方式

Collection体系集合---->使用默认方法stream()生成流, default Stream stream()

Map体系集合---->把Map转成Set集合,间接的生成流

数组---->通过Arrays中的静态方法stream生成流

同种数据类型的多个数据---->通过Stream接口的静态方法of(T... values)生成流

Stream流中间操作方法

Stream流式处理详解(通俗易懂)_第4张图片

 limit&skip代码演示------->

Stream流式处理详解(通俗易懂)_第5张图片

Stream流式处理详解(通俗易懂)_第6张图片 concat&distinct代码演示------->

Stream流式处理详解(通俗易懂)_第7张图片

这里我们添加了两条“李宁,彪马”,进行去重之后,只剩一条!

Stream流式处理详解(通俗易懂)_第8张图片

Stream流终结操作方法

 forEach咋门上面已经演示过了,就是遍历打印流里面的数据,现在咋们来测试一下count();

count 代码演示-------> 我们看见,返回的是一个long类型的数值,打印出来正式集合中元素的个数。

Stream流式处理详解(通俗易懂)_第9张图片

Stream流的收集操作

概念:对数据使用Stream流的方式操作完毕后,可以把流中的数据收集到集合中,就像工厂的流水线,来一个原始的物品,上流水线,进行处理,然后打包!

常用方法:

Collectors提供了具体的收集方式

Stream流式处理详解(通俗易懂)_第10张图片

 直接上代码~

Stream流式处理详解(通俗易懂)_第11张图片

filter:负责过滤数据的

collect:负责收集数据.获取流中剩余的数据,但是他不负责创建容器,也不负责把数据添加到容器中

Collectors.toList() : 在底层会创建一个List集合.并把所有的数据添加到List集合中.

上面是单列集合的收集方式,那双列集合的尼?看下面,上代码 ~~~

Stream流式处理详解(通俗易懂)_第12张图片

  Collect方法只能获取到流中剩余的每一个数据在底层不能创建容器,也不能把数据添加到容器中

  Collectors.toMap 创建一个map集合并将数据添加到集合当中。
 

 Stream流式处理详解(通俗易懂)_第13张图片

感觉有收获的话,记得给点个赞o,撒拉嘿~~~

你可能感兴趣的:(java)