Java 中的 Collector 是用于将 Stream 中的元素收集到一个数据结构中的工具。它们可以将 Stream 中的元素收集到 List、Set、Map 等数据结构中,并且可以对元素进行操作或对结果进行汇总。
Collector 接口中定义了几个方法,其中最重要的是三个方法:
当我们使用 Collector 收集器时,通常会使用 Collectors 类中提供的静态工厂方法来创建 Collector。这些静态方法包括 toList()、toSet()、toMap() 等,用于将元素收集到不同的数据结构中。
以下是一个使用 Collector 的简单示例:
List<String> list = Arrays.asList("apple", "banana", "cherry");
List<String> collectedList = list.stream()
.filter(s -> s.startsWith("a"))
.collect(Collectors.toList());
System.out.println(collectedList); // 输出:[apple]
在这个例子中,我们通过 filter() 方法筛选出以字母"a"开头的元素,然后使用 collect() 方法将筛选后的元素收集到一个 List 中。最终输出的结果是包含"apple"的 List。