Stream流

并不会更改集合中的数据 只是对其进行一个加工

循环遍历的弊端

image.png

Stream的更优写法

foreach方法中迭代器中有

image.png
链式编程的每个方法都可以返回这个对象
image.png
传入一个consumer对象 调用里面的accept方法用于循环打印
image.png
image.png
image.png
image.png

流式思想概述

image.png

获取流

stream流是collection接口的一个方法
可用于所有单列集合

根据Collection获取流

首先, java.util.Collection 接口中加入了default方法 stream 用来获取流,所以其所有实现类均可获取流。
image.png

作用于map集合时 只能用于key value 和 entry

image.png

作用于数组

image.pngimage.png

stream的of方法是一个可变参数

image.png

常用方法

逐一处理:forEach

image.png

复习Consumer接口

image.png
image.png

过滤:filter

image.png

复习Predicate接口

image.png

统计个数:count

取用前几个:limit

image.png

跳过前几个:skip

延迟方法:只要除了foreach语句都是延迟方法,没有foreach语句延迟语句是不执行的
终结方法:返回类型不再是自身类型(predicate,consumer,function,stream,supplier)的方法就是终结方法
image.png

方法引用

冗余的Lambda场景

image.png

方法引用符 ::双冒号

image.png
image.png
方法引用实例
image.png

通过对象名引用成员方法

image.png

通过类名称引用静态方法

image.png

通过super引用成员方法

image.png

通过this引用成员方法

image.png
image.png

类的构造器引用

image.png

数组的构造器引用

image.png