什么是Stream
不知道有玩过异星工厂的伙伴没,给一张图
生产线
Stream就像处理生产流水线一样去工作,传送带就是Stream的管道,每个工厂关注直接的生产,将上游产品加工成下游需要的产品。为什么Stream比传统的处理方式好呢?我们都知道,传统的处理中,每一步我们都需要通过循环控制,逻辑控制,解包,重新装箱这些工作。
非生产线示意处理图
这些步骤让我们的程序的业务逻辑支离破碎,经常处理数据类的小伙伴尤为痛苦。幸运的是,Java8为我们引入了Stream,使用Stream后我们只关注数据处理逻辑,其他的事情交给流处理对应的方法来完成。
创建数据流
指北君先为大家介绍如何创建Stream,这里有非常多的方式,需要注意一点就是:流一旦创建后,修改创建的源不会影响已经创建的Stream中的数据。
1. 空流 为了避免出现空指针异常,系统提供一个静态方法提供空流。
2.通过数组对象创建流
3.通过集合对象创建流
支持多种集合:List,Set,Map等实现了Collection接口的集合对象。
4. 通过builder创建