Stream作为 Java 8的一大亮点,它与 java.io 包里的 InputStream和 OutputStream是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream。
Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API借助Lambda表达式,提供串行和并行两种模式进
行汇聚操作,并行模式能够充分利用多核处理器的优势,使用 fork/join来拆分任务和加速处理过程。
使用Stream包括三个基本步骤:
获取一个数据源(source)→ 数据转换→执行操作获取想要的结果,每次转换原有 Stream 对象不改变,返回一个新的 Stream 对象(可以有多次转换),这就允许对其操作可以像链条一样排列,变成一个管道。
串行流
并行流
再运行一下:
多线程情况下,不一定哪个线程先执行。