Java8 Streams

2019-11-14  本文已影响0人  咪啊p

什么是Streams

这个里面的我们说的Streams是java.util.Streams跟java.io 里面的streams是完全不同的概念。Java 8中的Stream其实是函数式编程里Monad的概念(Monad就是一种设计模式,表示将一个运算过程,通过函数拆解成互相连接的多个步骤,有点链式操作的感觉), 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作,或者大批量数据操作 。同时它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用 fork/join 并行方式来拆分任务和加速处理过程。所以说,Java 8 中首次出现的 java.util.stream 是一个函数式语言+多核时代综合影响的产物。

Streams特性

如何得到Streams:

Intermediate 和 Terminal 操作

PS:Short-circuiting 操作指:对于一个 intermediate 操作,如果它接受的是一个无限大(infinite/unbounded)的 Stream,但返回一个有限的新 Stream。对于一个 terminal 操作,如果它接受的是一个无限大的 Stream,但能在有限的时间计算出结果。

reference:

https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/

上一篇 下一篇

猜你喜欢

热点阅读