stream流的reduce方法
时间: 2023-09-10 12:10:56 浏览: 151
Stream流常用方法
在 Java 8 中,Stream 提供了一个 reduce() 方法,它可以将流中的元素按照指定的方式聚合(例如求和、求积、求最大值等),并返回一个 Optional 类型的结果。
reduce() 方法有两个参数:第一个参数是初始值(也称为“累加器”),第二个参数是一个 BinaryOperator 接口类型的函数,用于将流中的元素聚合到一起。如果流为空,则返回 Optional.empty()。
下面是一个求和的例子:
``` java
int sum = Stream.of(1, 2, 3, 4, 5)
.reduce(0, (a, b) -> a + b);
```
在这个例子中,reduce() 方法的第一个参数是初始值 0,第二个参数是一个 Lambda 表达式,它将两个整数相加。
另外,reduce() 方法还有一个重载的版本,它只接受一个 BinaryOperator 类型的参数。这个方法会将流中的元素两两聚合,最终返回一个 Optional 类型的结果。例如:
``` java
Optional<Integer> result = Stream.of(1, 2, 3, 4, 5)
.reduce((a, b) -> a + b);
```
在这个例子中,reduce() 方法只有一个参数,它将流中的元素两两相加,最终返回一个 Optional 类型的结果。如果流为空,则返回 Optional.empty()。
阅读全文