JAVA8 Stream流之reduce()方法详解
reduce()
方法在 Java 8 的 Stream API 中被用于将流中的元素进行累加操作。这个方法接收两个参数:一个是起始值(identity),另一个是 BinaryOperator 函数,该函数接收两个参数并返回一个结果。
reduce()
方法有两种形式:
reduce(identity, accumulator)
:使用指定的起始值和累加器函数进行累加。reduce(accumulator)
:如果流为空,返回 Optional.empty(),否则使用流中的元素作为起始值并应用累加器函数。
下面是使用 reduce()
方法的一个例子:
import java.util.Arrays;
import java.util.List;
public class ReduceExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
// 使用reduce()方法计算列表中数字的总和
int sum = numbers.stream()
.reduce(0, (a, b) -> a + b);
System.out.println("Total Sum: " + sum);
// 使用reduce()方法计算列表中数字的乘积
int product = numbers.stream()
.reduce(1, (a, b) -> a * b);
System.out.println("Total Product: " + product);
}
}
在这个例子中,我们首先计算了一个整数列表的总和,然后计算了它们的乘积。reduce()
方法的第一个参数是累加的起始值,第二个参数是一个 BinaryOperator,用于定义累加的规则。
评论已关闭