Java 8 引入了 Stream API,它提供了一种高效且易于表达的方式来处理集合数据。Stream API 允许你以声明式的方式处理数据,支持函数式编程风格,使得代码更加简洁和易读。以下是关于 Java Stream 流的详细介绍:
1. Stream 流的基本概念
Stream 流是对集合(Collection)数据进行操作的抽象,它可以进行各种操作,如过滤、映射、排序、聚合等。Stream 流不是数据结构,它不存储数据,而是通过管道(pipeline)的方式对数据进行处理。
2. Stream 流的创建
2.1 从集合创建
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream();
2.2 从数组创建
String[] array = {
"a", "b", "c"};
Stream<String> stream = Arrays.stream(array);
2.3 使用 Stream.of
创建
Stream<String> stream = Stream.of("a", "b", "c");
2.4 创建无限流
Stream<Integer> infiniteStream = Stream.iterate(0, n -> n + 2);
3. Stream 流的操作
Stream 流的操作分为两种类型:中间操作(intermediate operations)和终端操作(terminal operations)。
3.1 中间操作
中间操作返回一个新的 Stream 流,可以进行链式调用。常见的中间操作包括:
- filter:过滤元素
- map:映射元素
- flatMap:扁平化映射
- distinct:去重
- sorted:排序
- peek:调试操作
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
List<String> filteredNames