java 8 stream 底层原理
java streamJava 8 Stream 底层原理
Java 8引入了Streams,是一种新的流式编程形式,它提供了这样的能力,可以用流简洁地编写高效的代码。在这里我们将学习Java Streams的底层原理,它是如何工作的以及如何使用Java 8的Streams。
1.什么是Streams Streams是Java 8中引入的一个新特性,是一种集合上的操作,使集合的处理更加有效和容易,主要用于集合类库中处理集合元素。简单来说,就是将某个集合中的元素变成一条数据流,通过一定的操作来实现对集合的查、排序、筛选、计算等操作。
2.Streams的分类 1)直接使用流和并行流 2)中间操作和结束操作 3)有状态和无状态操作
3.Java 8 Stream的特点 1)无存储 2)不生成额外集合 3)支持多核操作,Stream的数据源可以是数组、集合、I / O通道等 4)支持过滤、转换、扁平化等操作
4.Streams工作原理 Streams 集合类库设计是借鉴了 SQL语句的操作方式,可以对集合进行
select,filter,sort,map等操作。 在 Java 中 Streams 有两个主要的部分:Source和Pipeline。
a) Source Streams用于支持并行处理元素的一种集合,它主要提供了三大类型的来源:数组、集合和I / O通道。源中的元素将输送到处理Pipeline中。
b) Pipeline Stream是由一个中间操作来生成Pipeline,并且最终会以Terminal Operation结束Pipeline,为了让Stream更高效,保证资源的充分利用,Stream还拥有Intermediate和Terminal Operations。
c)Intermediate Operations 中间操作允许Stream流操作输出另一个Stream流,这样可以把多个操作连接起来,实现一个流水线,即 "Stream Pipeline"。在执行间操作时不会发生真正的集合操作,只有当它调用终止操作后才会执行。中间操作可以分组为非stateful和stateful操作两类。非无状态操作在进行期间不会存储状态变量,因此可以在流管道中并行操作。
d)Terminal Operations 终止操作是执行完流管道之后结果的一种操作,该操作将执行中间操作构造出的流管道。
5. Java 8中的Stream主要操作 Java 8中的Stream API提供了多个操作类型,可以让Developer轻松地在代码中实现集合的各种操作。以下是一些常用的操作类型:
a)Filtering 这些操作提供了一个条件,并从流中过滤出满足该条件的所有元素。
b)Sorting 这些操作给元素排序,可以通过不同的方式进行排序。
c)Mapping 这些操作在执行之前使用一种函数将一个元素转化为另一个元素,从而为食管道中的下游操作修改每个元素的结构。
d)Matching 这些操作允许检查流中的元素是否满足某个条件。
e)Reducing 此操作用于在流中的所有元素上执行逐个组合操作,生成单个数字。
6. 总结 Java 8 Stream是一个非常强大的概念,在Java编程中可以提高代码的效率和易用性。它不仅是对集合类库的补充,而且提供了更有用且具有可扩展性的方法,可以帮助我们处理Java开发中的复杂问题。在使用Stream时,需要记住它的分类、特点和工作原理,以及如何使用流的主要操作。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论