说到Stream便容易想到I/O Stream,而实际上,谁规定“流”就一定是“IO流”呢?在Java 8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream概念,用于解决已有集合类库既有的弊端。

流式思想类似于工厂车间的“生产流水线”。
Stream流入门
这张图中展示了过滤、映射、跳过、计数等多步操作,这是一种集合元素的处理方案,而方案就是一种“函数模型”。图中的每一个方框都是一个“流”,调用指定的方法,可以从一个流模型转换为另一个流模型。而最右侧的数字3是最终结果。

当使用一个流的时候,通常包括三个基本步骤:获取一个数据源(source)→ 数据转换→执行操作获取想要的结果,每次转换原有 Stream 对象不改变,返回一个新的 Stream 对象(可以有多次转换),这就允许对其操作可以像链条一样排列,变成一个管道。

首先, java.util.Collection 接口中加入了default方法 stream 用来获取流,所以其所有实现类均可获取流。

Stream流入门
Stream流入门
如果使用的不是集合或映射而是数组,由于数组对象不可能添加默认方法,所以 Stream 接口中提供了静态方法of ,使用很简单:

Stream流入门
过滤:fifilter
Stream流入门
统计个数:count
Stream流入门
映射:map

Stream流入门

相关文章:

  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-11-30
  • 2021-08-06
  • 2021-09-25
  • 2021-05-03
  • 2022-03-01
  • 2021-09-30
  • 2021-06-03
相关资源
相似解决方案