java的reduce
时间: 2024-09-26 09:17:32 浏览: 33
Java 8系列之Stream中万能的reduce用法说明
在Java编程中,`reduce()`是Stream API提供的一个高阶函数,用于将一系列元素合并成单个结果。它通常与`BinaryOperator`接口一起使用,这个接口代表一个二元操作,比如加法、乘法或其他聚合操作。`reduce()`方法的工作原理是按顺序应用给定的操作到序列的每个元素上,直到所有元素都被处理,或者遇到满足某个条件的终止值。
使用`reduce()`的基本语法如下:
```java
Optional<T> reduce(BinaryOperator<T> accumulator);
T reduce(T identity, BinaryOperator<T> accumulator);
```
- 第一种形式适用于不可空流,返回的是最终的累积结果。
- 第二种形式允许提供初始值(`identity`),当流为空时作为累积的基础。
例如,如果我们有一个整数列表,并想计算它们的总和,可以这样做:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream().reduce(0, (a, b) -> a + b);
System.out.println(sum); // 输出:15
```
在这里,`(a, b) -> a + b`是一个匿名函数,它是`BinaryOperator`类型的实例,表示加法操作。
阅读全文