jdk1.8 Stream 特性总结

Posted huzi007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdk1.8 Stream 特性总结相关的知识,希望对你有一定的参考价值。

  • 不是数据结构
  • 它没有内部存储,它只是用操作管道从 source(数据结构、数组、generator function、IO channel)抓取数据。
  • 它也绝不修改自己所封装的底层数据结构的数据。例如 Stream 的 filter 操作会产生一个不包含被过滤元素的新 Stream,而不是从 source 删除那些元素。
  • 所有 Stream 的操作必须以 lambda 表达式为参数
  • 不支持索引访问
  • 你可以请求第一个元素,但无法请求第二个,第三个,或最后一个。不过请参阅下一项。
  • 很容易生成数组或者 List
  • 惰性化
  • 很多 Stream 操作是向后延迟的,一直到它弄清楚了最后需要多少数据才会开始。
  • Intermediate 操作永远是惰性化的。
  • 并行能力
  • 当一个 Stream 是并行化的,就不需要再写多线程代码,所有对它的操作会自动并行进行的。
  • 可以是无限的
    • 集合有固定大小,Stream 则不必。limit(n) 和 findFirst() 这类的 short-circuiting 操作可以对无限的 Stream 进行运算并很快完成。

以上是关于jdk1.8 Stream 特性总结的主要内容,如果未能解决你的问题,请参考以下文章

jdk1.8新特性Stream流式处理

jdk1.8新特性——Stream(流)的创建

JDK1.8新特性——Stream

Java基础之Stream流(JDK1.8新特性)

使用jdk1.8 stream特性对参数名称进行排序

jdk1.8新特性——Stream(流)的终止操作基本语法