什么是Stream流?
Stream流,是JDK1.8中对集合对象功能的增强,可以通过将集合转换为流模型,通过声明的方式对集合中个每个元素进行一系列并行或者串行的流水线操作。
它针对于对集合对象进行各种非常便利、高效的聚合操作,或者大批量数据操作。
Stream不是集合元素,不是数据结构并不保存数据,Stream是有关算法和计算的,像是一个高级版本的迭代器Iterator。
Stream只要给出对其包含的元素执行什么操作,Stream就会隐式地在内部进行遍历,并给出响应的数据转换。单向不可往复、数据只能遍历一次,遍历过后就使用完毕。
Stream可以并行化操作,Stream的并行操作是依赖Java7中引入的Fork/Join框架拆分任务和加速处理过程,并且允许数据源是无限的。
基本的执行流程
使用Stream通常包括3个基本步骤:
1、获取一个数据源source
2、转换为流—执行操作
3、获取所想要的结果。
每次转换原有的Stream对象,执行结果还是Stream,可以使用串式写法定义多个操作数据源就是原始的数据集合将 List 集合转换为 Stream。
针对Stream进行一系列操作,每次操作结束返回还是Stream可以将Stream转换回集合类型,也可以直接对其中的元素进行处理:
1、创建Stream
2、转换Stream,每次执行转换Stream对象类型不改变,返回一个新的Stream对象
3、对Stream进行聚合操作,获取想要的结果、