Java8 Stream(一):Stream概述特点

Java8 Stream(一):Stream概述特点,第1张

Java8 Stream(一):Stream概述特点 一、概述

​ Stream流是 Java8 API 新增的一个处理集合的关键抽象概念,是一个来自数据源的元素队列并支持聚合 *** 作

​ Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。

​ Stream API 提供了一种高效且易于使用的处理数据的方式。

​ Stream将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。

​ 元素流在管道中经过中间 *** 作的处理,最后由最终 *** 作得到前面处理的结果。

二、特点

    Stream不存储数据
    Stream不是集合元素,它不是数据结构并不存储数据,它按照特定的规则对数据进行计算,它更像一个高级版本的Iterator。原始版本的Iterator,用户只能显式地一个一个遍历元素并对其执行某些 *** 作。
    高级版本的Stream,用户只要给出需要对其包含的元素执行什么 *** 作,比如:筛选出年龄小于20的人、获取人的身份z号等,Stream会隐式地在内部进行遍历,做出相应的数据转换。Stream就如同一个迭代器(Iterator),单向,不可往复,数据只能遍历一次,遍历过一次后即用尽了,就好比流水从面前流过,一去不复返。

    而和迭代器又不同的是,Stream可以并行化 *** 作,迭代器只能命令式地、串行化 *** 作。顾名思义,当使用串行方式去遍历时,每个item读完后再读下一个item。**而使用并行去遍历时,数据会被分成多个段,其中每一个都在不同的线程中处理,然后将结果一起输出。**Stream的并行 *** 作依赖于Java7中引入的Fork/Join框架(JSR166y)来拆分任务和加速处理过程。

    Stream不会改变数据源

    ​ Stream不会修改原来的数据源,它会产生一个新的集合或值。

    Stream是惰性求值的(延迟执行)

    ​ Stream是惰性求值的(延迟执行),在中间处理的过程中,只对 *** 作进行记录,并不会立即执行,只有等到执行终止 *** 作的时候才会进行实际的计算,这时候中间 *** 作才会执行。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5716432.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存