Collectors.collectingAndThen用法
时间: 2024-02-06 14:03:31 浏览: 26
`Collectors.collectingAndThen` 是一个 Java 8 中的收集器工具类方法,它的作用是将收集到的流结果转换为另一种类型。
它的方法签名如下:
```
public static <T, A, R, RR> Collector<T, A, RR> collectingAndThen(
Collector<T, A, R> downstream,
Function<R, RR> finisher)
```
其中:
- `downstream`:要对流进行操作的下游收集器。
- `finisher`:用于将下游收集器返回的结果转换为期望的最终结果的函数。
下面是一个示例,演示如何使用 `Collectors.collectingAndThen` 方法将一个字符串集合收集到一个以逗号分隔的字符串中:
```java
List<String> stringList = Arrays.asList("a", "b", "c", "d");
String result = stringList.stream()
.collect(Collectors.collectingAndThen(
Collectors.joining(","),
str -> "Result: " + str
));
System.out.println(result); // Result: a,b,c,d
```
在上面的示例中,首先通过 `Collectors.joining` 方法将字符串集合收集到了一个以逗号分隔的字符串中,然后再通过 `collectingAndThen` 方法将其转换为一个以 "Result: " 开头的字符串。最终输出的结果是 "Result: a,b,c,d"。