JAVA8reduce
时间: 2023-11-01 14:56:43 浏览: 107
Java 8系列之Stream中万能的reduce用法说明
在Java 8中,reduce是一个非常有用的函数,它可以将一个流中的元素进行归约操作,最终返回一个值。它的使用方式是将一个初始值和一个BinaryOperator函数传递给流的reduce方法。
下面是reduce函数的基本语法:
```
Optional<T> reduce(BinaryOperator<T> accumulator)
T reduce(T identity, BinaryOperator<T> accumulator)
U reduce(U identity, BiFunction<U, ? super T, U> accumulator, BinaryOperator<U> combiner)
```
第一个语法形式中,只传递了一个BinaryOperator函数。它用于将流中的元素进行归约,并返回一个Optional对象。
第二个语法形式中,除了BinaryOperator函数外,还传递了一个初始值identity。这个初始值会作为归约操作的起点。
第三个语法形式中,除了BinaryOperator函数和初始值外,还传递了一个combiner函数。这个函数用于处理并行流的归约操作。
下面是一个简单示例,演示如何使用reduce计算数组中所有元素的和:
```java
int[] numbers = {1, 2, 3, 4, 5};
int sum = Arrays.stream(numbers).reduce(0, (a, b) -> a + b);
System.out.println("Sum: " + sum);
```
输出结果为:Sum: 15
在这个例子中,我们将初始值0和一个BinaryOperator函数 (a, b) -> a + b 传递给了reduce方法。这个函数用于对流中的元素进行求和操作。
希望这个示例能够帮助你理解Java 8中reduce函数的用法。如果有任何进一步的问题,请随时提问!
阅读全文