04. Java8-流式API-简介

x33g5p2x  于2021-12-18 转载在 其他  
字(0.6k)|赞(0)|评价(0)|浏览(273)

如果说Java8 中最大的两个改变, 一个是Lambda 表达式, 另外一个就是Stream API(流式 API). Stream API 允许声明式地操作集合, 可以执行复杂的过滤, 查找, 映射, 分组, 聚合等操作,而且对流操作时, 可以透明地使用并行处理, 而无须新写多线程代码. 简而言之, Stream APi 提供了一种新型高效且易于使用的数据处理方式.

1. Stream

流是数据渠道, 类似于流水线, 用于操作数据源(集合,数组)所生成的元素序列. 集合/数组侧重于数据, 而流侧重于数据的计算.Stream 的特点:

  • Stream 自身并不会存储元素, 只是用来对数据源中的数据进行处理.
  • Stream 并不会改变源对象, 而是返回一个拥有处理后结果的Stream.
  • Stream 的操作是延迟执行的, 中间操作(流水线上的数据处理方式)并不会触发运算, 只有出现终端操作时,才会触发流进行依次运算.
  • Stream 流类似于生产车间上的流水线, 每个元素只能过一次,不能回退执行. 终端操作也只能有一个.

2. Stream 使用步骤

任何Stream 的操作都必须经历创建流, 流中间操作, 终端操作 三个步骤.

2.1 创建流

创建流用于从一个数据源(如: 数组, 集合等)获取流对象. 常见获取方式如下:

2.2 中间操作

流的中间操作是一个操作链, 对数据源中的数据进行处理.一系列中间操作行程一个操作流水线, 当遇到终止操作时,对流中元素依次进行处理,中间操作返回的都是流.

2.3 终止操作(终端操作)

终止操作用于触发流进行流水线处理, 产生流水线处理的结果.结果类型可为任意类型.

相关文章