Java Stream 合并 List
在 Java 中,Stream 是一种操作集合的高级抽象。它提供了一种优雅且功能强大的方式来处理集合数据。在某些情况下,我们可能需要将多个 List 合并成一个 List。本文将介绍如何使用 Java Stream 来合并多个 List。
方案1:使用 addAll()
方法
Java 中的 List
接口提供了一个 addAll()
方法,可以将一个 List 中的所有元素添加到另一个 List 中。我们可以使用该方法来合并多个 List。下面是一个示例代码:
import java.util.ArrayList;
import java.util.List;
public class ListMergeExample {
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
List<String> list2 = new ArrayList<>();
list2.add("C");
list2.add("D");
List<String> mergedList = new ArrayList<>();
mergedList.addAll(list1);
mergedList.addAll(list2);
System.out.println(mergedList); // 输出:[A, B, C, D]
}
}
在上面的示例中,我们首先创建了两个 List:list1
和 list2
,然后创建了一个空的 List mergedList
。接下来,我们使用 addAll()
方法将 list1
和 list2
中的元素添加到 mergedList
中。最后,我们打印出合并后的结果。
方案2:使用 Java 8 Stream 的 flatMap()
方法
Java 8 引入了 Stream API,它提供了更简洁和灵活的方式来操作集合。我们可以使用 Stream 的 flatMap()
方法来合并多个 List。下面是一个示例代码:
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class ListMergeExample {
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
List<String> list2 = new ArrayList<>();
list2.add("C");
list2.add("D");
List<String> mergedList = Stream.of(list1, list2)
.flatMap(List::stream)
.collect(Collectors.toList());
System.out.println(mergedList); // 输出:[A, B, C, D]
}
}
在上面的示例中,我们首先创建了两个 List:list1
和 list2
。然后,我们使用 Stream.of()
方法将这两个 List 转换为一个 Stream。接下来,我们使用 flatMap()
方法将各个 List 的元素流合并成一个单一的流。最后,我们使用 collect()
方法将流中的元素收集到一个新的 List 中。
总结:本文介绍了两种使用 Java Stream 来合并多个 List 的方法。第一种方法是使用 List 的 addAll()
方法,将一个 List 中的所有元素添加到另一个 List 中。第二种方法是使用 Java 8 Stream 的 flatMap()
方法,将多个 List 合并成一个单一的流,然后将流中的元素收集到一个新的 List 中。这些方法都提供了一种简单且高效的方式来合并多个 List。根据实际需求,您可以选择适合您的场景的方法来合并 List。
希望本文对您理解和使用 Java Stream 合并 List 有所帮助!如有疑问,请随时提问。