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 的内部工作原理?
- 创建流 – 从集合、数组或静态方法创建。
- 应用中间操作 – 转换数据(例如
filter()、map()、sorted())。 - 应用终端操作 – 产生结果(例如
forEach()、collect()、reduce())。
流的创建方式
- 从集合 –
list.stream()或set.stream()。 - 从数组 –
Arrays.stream(array)。 - 使用
Stream.of()– 从固定的一组值创建流。 - 无限流 – 使用
Stream.iterate()或Stream.generate()生成无界序列。


中间操作
中间操作会把一个流转换为另一个流。常见的有:
filter()– 根据条件过滤元素。map()– 将每个元素转换为另一个值。sorted()– 对元素进行排序。distinct()– 去除重复元素。skip()– 跳过前 n 个元素。


流的类型
顺序流
在单个线程中逐个处理元素。默认在调用 stream() 时创建。


并行流
可以在多个线程上并发执行操作,充分利用多核 CPU。
无限流
生成无界序列。使用 limit() 限制元素数量,以避免无限执行。

