Stream介绍:在没有Stream之前,我们普遍都是使用for循环对集合或者数组进行处理,过程繁琐且代码凌乱,Stream流就很好的解决了这个问题。是我们的代码看起来更加的优雅!
优点:
1.直接阅读代码的字面意思即可完美展示无关逻辑方式的语义。
2.Stream流把真正的函数式编程风格引入到Java中,使我们的代码更加简洁且优雅。
好了!我们开始进入正题吧,来看一下Stream流的优雅吧!
------------------------------------------------------------->
首先我们在集合中添加一些数据,过滤出开头为李的名称并且只要长度为2的数据。
优雅~~~
来画图深刻的理解一下吧!
获取Stream:流创建一条流水线,并把数据放到流水线上准备。
中间方法:流水线上的操作一次操作完毕之后,还可以继续进行其他操作。
终结方法:一个Stream流只能有一个终结方法是流水线上的最后一个操作。
Collection体系集合---->使用默认方法stream()生成流, default Stream
Map体系集合---->把Map转成Set集合,间接的生成流
数组---->通过Arrays中的静态方法stream生成流
同种数据类型的多个数据---->通过Stream接口的静态方法of(T... values)生成流
limit&skip代码演示------->
这里我们添加了两条“李宁,彪马”,进行去重之后,只剩一条!
forEach咋门上面已经演示过了,就是遍历打印流里面的数据,现在咋们来测试一下count();
count 代码演示-------> 我们看见,返回的是一个long类型的数值,打印出来正式集合中元素的个数。
概念:对数据使用Stream流的方式操作完毕后,可以把流中的数据收集到集合中,就像工厂的流水线,来一个原始的物品,上流水线,进行处理,然后打包!
常用方法:
Collectors提供了具体的收集方式:
直接上代码~
filter:负责过滤数据的
collect:负责收集数据.获取流中剩余的数据,但是他不负责创建容器,也不负责把数据添加到容器中
Collectors.toList() : 在底层会创建一个List集合.并把所有的数据添加到List集合中.
Collect方法只能获取到流中剩余的每一个数据在底层不能创建容器,也不能把数据添加到容器中
Collectors.toMap 创建一个map集合并将数据添加到集合当中。
感觉有收获的话,记得给点个赞o,撒拉嘿~~~