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

PHP无法删除文件:排查及解决方法大全
https://www.shuihudhg.cn/126791.html

Python 列表转换为字符串:多种方法及性能比较
https://www.shuihudhg.cn/126790.html

Python字符串空格去除:方法详解及性能比较
https://www.shuihudhg.cn/126789.html

PHP连接与操作多种数据库:MySQL、PostgreSQL、SQLite及其他
https://www.shuihudhg.cn/126788.html

高效Python JSON数据更新:方法、技巧与最佳实践
https://www.shuihudhg.cn/126787.html
热门文章

Java中数组赋值的全面指南
https://www.shuihudhg.cn/207.html

JavaScript 与 Java:二者有何异同?
https://www.shuihudhg.cn/6764.html

判断 Java 字符串中是否包含特定子字符串
https://www.shuihudhg.cn/3551.html

Java 字符串的切割:分而治之
https://www.shuihudhg.cn/6220.html

Java 输入代码:全面指南
https://www.shuihudhg.cn/1064.html