java8 -函数式编程之Stream
在 java8 -函数式编程之Lambda表达式 、 java8 -函数式编程之四个基本接口 、 java8 -函数式编程之Optional 三篇文章中,我们已经对函数式编程有了充分的了解,接下来,我们将会运用之前学到的知识学习项目中常用到的 java8 Stream 流式操作。 什么是Stream Stream API 借助于 Lambda 表达式,极大的提高编程效率和程序可读性。同时它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用 fork/join 并行方式来拆分任务和加速处理过程。通常编写并行代码很难而且容易出错, 但使用 Stream API 无需编写一行多线程的代码,就可以很方便地写出高性能的并发程序。 流主要有三部分构成:获取一个数据源(source)→ 数据转换 → 执行操作获取想要的结果。每次转换原有 Stream 对象不改变,返回一个新的 Stream 对象(可以有多次转换),这就允许对其操作可以像链条一样排列,变成一个管道。 Stream的特点 无存储性: 流不是存储元素的数据结构;相反,它需要从数据结构,数组,生成器函数或IO管道中获取数据并通过流水线地(计算)操作对这些数据进行转换。 函数式编程: Stream上操作会产生一个新结果,而不会去修改原始数据