Java 12 集合Teeing方法
Java 12引入了一种新的方法,用于在集合上执行两个不同的操作,然后合并结果。以下是teeing方法的语法:
Collector<T, ?, R> teeing( Collector<? super T, ?, R1> downstream1, Collector<? super T, ?, R2> downstream2, BiFunction<? super R1, ? super R2, R> merger)
这里我们在一个集合上执行不同的函数,然后使用合并器BiFunction合并结果。
考虑以下示例 –
ApiTester.java
import java.util.stream.Collectors;import java.util.stream.Stream;public class APITester { public static void main(String[] args) { double mean = Stream.of(1, 2, 3, 4, 5, 6, 7) .collect(Collectors.teeing( Collectors.summingDouble(i -> i), Collectors.counting(), (sum, n) -> sum / n)); System.out.println(mean); }}输出
4.0
