Java 12(2019 年 3 月 19 日发布)是可用于 JDK 的最新版本。让我们看看它为开发人员和架构师带来的新功能和改进。
1. Stream API 中的 Collectors.teeing()
teeing 收集器已公开为静态方法Collectors::teeing。该收集器将其输入转发给其他两个收集器,然后将它们的结果使用函数合并。
teeing(Collector, Collector, BiFunction)
接受两个收集器和一个合并其结果的函数。传递给结果收集器的每个元素都由两个下游收集器处理,然后使用指定的合并函数将它们的结果合并到最终结果中。
例如,在给定的学生列表中,如果我们想找出学生平均分/总分/最低分/最高分,我们可以使用 teeing collector 在单个语句中完成。
package cn.dayangshuo.collectors;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author DAYANG
*/
public class TeeingTest {
public static void main(String[] args) {
List<Student> list = Arrays.asList(
new Student("张三", 96),