stream流常用方法reduce
时间: 2023-10-19 17:07:59 浏览: 90
Stream流的`reduce`方法是用于将Stream中的元素合并为单个结果的归约操作。它接受一个初始累加器值和一个BinaryOperator(函数接口),并将其应用于流中的每个元素,最终返回一个包含归约结果的Optional对象。
`reduce`方法有两种形式:
1. `Optional<T> reduce(BinaryOperator<T> accumulator)`:对流中的元素进行归约操作,返回一个Optional对象,其中包含归约结果。
2. `<U> U reduce(U identity, BiFunction<U,? super T,U> accumulator, BinaryOperator<U> combiner)`:对流中的元素进行归约操作,接受一个初始值identity、一个累加器函数和一个组合器函数,返回一个包含归约结果的对象。
下面是一些常用的`reduce`方法的示例:
```java
// 示例1:对整数流进行求和
Optional<Integer> sum = Stream.of(1, 2, 3, 4, 5)
.reduce(Integer::sum);
// 示例2:对字符串流进行连接
String concat = Stream.of("Hello", " ", "World")
.reduce("", String::concat);
// 示例3:对字符串流进行自定义归约操作
Optional<String> result = Stream.of("a", "b", "c")
.reduce((s1, s2) -> s1 + "-" + s2);
```
希望这些示例可以帮助你理解`reduce`方法的用法。有任何问题,请随时向我提问!
阅读全文