stream reduce聚合
时间: 2023-10-22 20:09:58 浏览: 112
JAVA8 stream中三个参数的reduce方法对List进行分组统计操作
5星 · 资源好评率100%
Stream.reduce() 是 Java 8 中 Stream API 提供的一个聚合操作。它接受一个初始值和一个 BinaryOperator 参数,并将流中的元素依次应用于这个二元操作符,最终得到一个聚合结果。
下面是 reduce() 方法的签名:
Optional<T> reduce(BinaryOperator<T> accumulator)
T reduce(T identity, BinaryOperator<T> accumulator)
<U> U reduce(U identity, BiFunction<U, super T,U> accumulator, BinaryOperator<U> combiner)
在第一个签名中,初始值被认为是可选的,并且返回一个 Optional 类型的结果。而在后两个签名中,初始值是必需的,返回一个非 Optional 类型的结果。
这里是一个例子来说明 reduce() 的用法:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Optional<Integer> sum = numbers.stream()
.reduce((a, b) -> a + b);
在这个例子中,我们有一个整数列表 numbers,然后我们通过调用 stream() 方法将其转换成一个流。接着我们调用 reduce() 方法,并传入一个 Lambda 表达式 (a, b) -> a + b 作为二元操作符,用于计算两个元素的和。最后我们得到的结果是一个 Optional<Integer> 类型的值,表示列表中所有元素的和。
希望这能帮助到你!如果有任何问题,请随时提问。
阅读全文