【Java 入门】流
集合是 Java 中使用最多的 API,几乎每个程序都会制造和处理集合。但是集合并不完美,比如对多核架构支持不好,我们常用流来提升处理效率。
流是什么
流是 Java API 中的一员,它允许你以声明性方式处理数据集合。流的一大特点是数据源本身是可以无限的。
流不是集合元素,并不保存数据,是用来计算的。
具有优点:
声明性:使代码更加简洁,更加易读
可复合:代码更加灵活
可并行:利用服务器多核架构,性能更好
流操作
java.util.stream.Stream 中的 Stream 定义了许多操作。一般可以分为两类:
filter,map 和 limit 可以连成一条流水线。
collect 触发流水线执行并关闭它。
复制代码
常用操作总结
使用 filter,distinct,skip 和 limit 对流做筛选和切片
使用 map 和 flatMap 提取或转换流中的元素。例子如下:
复制代码
可以利用 reduce 方法将流中的所有元素迭代合并成一个结果。
复制代码
并行流
并行流就是一个把内容分成多个数据块,并用不同的线程分别处理每个数据块的流。
在 Java 8 中,并行流使用了默认的 ForkJoinPoll,它默认的线程数量就是你的处理器的数量。
复制代码
总结
流已经出现很久了,但是在我接触到项目中使用的还不多,固然有老代码不愿意改的原因。如果新写的项目,大家不妨尝试一下,利用一下多核架构,使用一下新的 API 来完善自己的业务代码。
版权声明: 本文为 InfoQ 作者【HQ数字卡】的原创文章。
原文链接:【http://xie.infoq.cn/article/3a55f3b493f2f7910a4970779】。文章转载请联系作者。
评论