Java 中的 Stream 方法61


Java 中的 Stream API 是一项强大的工具,可用于高效地处理数据集合。Stream 代表了一系列数据元素的顺序序列,并提供各种操作来转换、过滤和聚合数据。

Stream 方法是 Stream API 中的核心概念,它们对 Stream 进行操作并返回一个新的 Stream 或其他结果。下面列举了一些常用的 Stream 方法及其用途:

filter()

filter() 方法根据指定的谓词对 Stream 进行过滤,仅保留满足谓词的元素。例如:```java
List numbers = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// 过滤出偶数
List evenNumbers = ()
.filter(n -> n % 2 == 0)
.toList();
```

map()

map() 方法将 Stream 中的每个元素转换为另一个元素。它接受一个函数作为参数,该函数接收原始元素并返回新元素。例如:```java
// 将数字平方
List squares = ()
.map(n -> n * n)
.toList();
```

reduce()

reduce() 方法将 Stream 中的所有元素累积为单个值。它接受两个参数:累积器函数和初始值。累积器函数接收累积值和下一个元素,并返回一个新的累积值。例如:```java
// 计算数字之和
int sum = ()
.reduce(0, (acc, n) -> acc + n);
```

sorted()

sorted() 方法对 Stream 中的元素进行排序。它可以根据自然顺序或使用指定的比较器来排序。例如:```java
// 从小到大排序
List sortedNumbers = ()
.sorted()
.toList();
// 根据字符串长度排序
List sortedStrings = ("apple", "banana", "cherry")
.stream()
.sorted((String::length))
.toList();
```

distinct()

distinct() 方法返回一个 Stream,其中包含 Stream 中的唯一元素。它使用元素的 equals() 方法和 hashCode() 方法来确定唯一性。例如:```java
// 去除重复元素
List distinctNumbers = ()
.distinct()
.toList();
```

flatMap()

flatMap() 方法将 Stream 中的每个元素转换为一个 Stream,然后将所有子 Stream 合并为一个 Stream。它通常用于将嵌套集合展平为单个 Stream。例如:```java
List listOfLists = (
(1, 2),
(3, 4),
(5, 6)
);
// 展平嵌套列表
Stream flattenedStream = ()
.flatMap(Collection::stream);
```

peek()

peek() 方法对 Stream 中的每个元素执行一个操作,但不会改变 Stream。它通常用于调试或打印元素。例如:```java
()
.peek(::println)
.toList();
```

limit() 和 skip()

limit() 方法返回一个 Stream,其中包含最多指定的元素数。skip() 方法返回一个 Stream,其中省略了最初指定的元素数。例如:```java
// 输出前 5 个元素
List firstFive = ()
.limit(5)
.toList();
// 跳过前 3 个元素
List skippedThree = ()
.skip(3)
.toList();
```

forEach()

forEach() 方法对 Stream 中的每个元素执行一个操作。它通常用于处理或遍历元素。例如:```java
()
.forEach(::println);
```

总之,Java 中的 Stream 方法为处理数据集合提供了强大的工具。通过理解并熟练运用这些方法,开发人员可以简化和优化他们的代码,从而高效地执行数据操作。

2024-10-19


上一篇:Java 数组拼接字符串的全面指南

下一篇:Java 元数据:揭开 Java 类背后的秘密