Java 8(Stream API)

发布: (2025年12月15日 GMT+8 16:39)
2 min read
原文: Dev.to

Source: Dev.to

Stream API 的特性

  • 声明式 – 使用函数式风格编写简洁、可读的代码。
  • 惰性求值 – 只有在需要终端操作时才会执行操作。
  • 并行执行 – 支持并行流,以利用多核处理器。
  • 可复用操作 – 支持链式调用,如 map()filter()sorted()
  • 无存储 – 流不存储数据,只对数据进行处理。

Stream 的内部工作原理?

  1. 创建流 – 从集合、数组或静态方法创建。
  2. 应用中间操作 – 转换数据(例如 filter()map()sorted())。
  3. 应用终端操作 – 产生结果(例如 forEach()collect()reduce())。

流的创建方式

  • 从集合list.stream()set.stream()
  • 从数组Arrays.stream(array)
  • 使用 Stream.of() – 从固定的一组值创建流。
  • 无限流 – 使用 Stream.iterate()Stream.generate() 生成无界序列。

Stream creation diagram

Another creation example

中间操作

中间操作会把一个流转换为另一个流。常见的有:

  • filter() – 根据条件过滤元素。
  • map() – 将每个元素转换为另一个值。
  • sorted() – 对元素进行排序。
  • distinct() – 去除重复元素。
  • skip() – 跳过前 n 个元素。

Intermediate operations diagram 1

Intermediate operations diagram 2

流的类型

顺序流

在单个线程中逐个处理元素。默认在调用 stream() 时创建。

Sequential stream diagram 1

Sequential stream diagram 2

并行流

可以在多个线程上并发执行操作,充分利用多核 CPU。

无限流

生成无界序列。使用 limit() 限制元素数量,以避免无限执行。

Infinite stream diagram 1

Infinite stream diagram 2

Back to Blog

相关文章

阅读更多 »