collect 详解
Java 8 引入的 Stream API 提供了一种强大的方式来处理集合数据
其中的 collect 方法是一个关键操作,用于将流中的元素收集到不同类型的结果容器中。
本文将详细介绍 Java 中 Stream 的 collect 方法
包括其基本用法、常见的收集器以及一些实际应用场景。
1,collect 方法的基本用法
collect 方法是 Stream API 中的一个终端操作,它接受一个 Collector 参数,用于将流中的元素累积成一个结果。Collector 接口定义了如何收集元素的方法,通常使用 Collectors 工具类来提供各种预定义的收集器。
基本语法:
<R, A> R collect(Collector<? super T, A, R> collector)
其中:
T 是流中元素的类型。
A 是累加器的类型,用于在收集过程中累积部分结果。
R 是收集操作最终要返回的类型。
示例1:将元素收集为列表
假设我们有一个字符串列表,我们希望将其中长度大于等于5的字符串收集到一个新的列表中。
List<String> words = Arrays.asList("apple", "banana", "grape", "orange", "kiwi");
List<String> longWords = words.stream()
.filter(word -> word.length() >= 5)
.collect(Collectors.toList());
System.out.println(longWords); // 输出:[banana, orange]
在这个示例中,collect(Collectors.toList()) 使用了 Collectors 工具类提供的静态方法 toList(),将流中符合条件的元素收集到一个新的 List 中。
当使用Java中的Stream API时,collect 方法是一个非常有用的工具,用于将流中的元素收集到不同类型的结果容器中。以下是一些直观易懂的例子,展示了 collect 方法的不同用法和常见场景。
假设我们有一个整数列表,我们想要将其中的偶数收集到一个新的列表中:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class CollectExamples {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList</