java lambda reduce
时间: 2024-08-26 13:01:40 浏览: 59
Java lambda 循环累加求和代码
在 Java 中,`reduce()` 是 Lambda 表达式和 Stream API 中的一个重要功能,它用于对集合中的元素进行累积操作,生成单个结果。这个函数接受一个二元操作 (BiFunction 或 BiPredicate),以及一个初始值(如果有),然后按照指定的操作规则依次处理集合中的每个元素,最后得到一个单一的结果。
例如,如果我们有一个整数列表,并想要找到它们的最大值,可以这样做:
```java
List<Integer> numbers = Arrays.asList(1, 5, 3, 9, 2);
int max = numbers.stream() // 创建一个Stream
.reduce((a, b) -> a > b ? a : b) // 使用lambda表达式定义累加操作,如果第一个数大于第二个则返回第一个
.orElseThrow(IllegalStateException::new); // 没有初始值,所以需要提供一个默认行为(这里抛出异常)
```
这里 `(a, b) -> a > b ? a : b` 是一个 Lambda 表达式,表示如果 `a` 大于 `b`,那么就用 `a` 替代 `b`,反之则保持不变,这就是最大值操作。
阅读全文