Java Stream API 全面解析
1. 过滤操作
在 Java 的 Stream API 中,过滤操作是非常常见且实用的。由于 filter()
或其他中间操作会返回一个新的流,所以可以对已过滤的流再次进行过滤。例如,要得到一个仅包含大于 5 的奇数的流,可以这样做:
oddVals = myList.stream().filter((n) -> (n % 2) == 1)
.filter((n) -> n > 5);
这里,两个过滤器都使用了 lambda 表达式。
2. 归约操作
2.1 特殊归约方法
像 min()
和 max()
这样的方法属于终端操作,它们会根据流中的元素返回一个结果。在 Stream API 中,它们被称为特殊归约操作,因为它们将流归约为单个值,分别是最小值和最大值。除了这两个方法,还有 count()
方法用于统计流中元素的数量。
2.2 reduce()
方法
Stream API 提供了 reduce()
方法来实现更通用的归约操作。 reduce()
有三个版本,我们先介绍前两个:
Optional&l