Java如何将两个List合并为一个

引言

在日常开发中,我们经常会遇到将两个List合并为一个的情况。比如,我们可能需要将两个购物车的商品合并为一个购物车,或者将两个班级的学生名单合并为一个班级。本文将介绍如何使用Java语言实现这一功能,并提供相应的示例代码。

问题描述

假设我们有两个List,分别为List1和List2,它们的元素类型相同。我们的目标是将这两个List合并为一个新的List,新的List包含List1和List2的所有元素。

解决方案

Java提供了多种方式来合并两个List。下面我们将介绍两种常用的方法。

方法一:使用addAll方法

Java的List接口提供了一个addAll方法,可以将一个List的所有元素添加到另一个List中。我们可以使用这个方法来将List2的所有元素添加到List1中,从而实现两个List的合并。

示例代码如下:

List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
list1.add("C");

List<String> list2 = new ArrayList<>();
list2.add("D");
list2.add("E");
list2.add("F");

list1.addAll(list2);  // 将list2的所有元素添加到list1中

System.out.println(list1);  // 输出合并后的List

这段代码的输出结果为:

[A, B, C, D, E, F]

方法二:使用Java 8的Stream API

Java 8引入了Stream API,提供了一种新的方法来处理集合。我们可以使用Stream的concat方法,将两个List转换为Stream,然后使用Stream的collect方法将它们合并为一个新的List。

示例代码如下:

List<String> list1 = Arrays.asList("A", "B", "C");
List<String> list2 = Arrays.asList("D", "E", "F");

List<String> mergedList = Stream.concat(list1.stream(), list2.stream())
                               .collect(Collectors.toList());

System.out.println(mergedList);  // 输出合并后的List

这段代码的输出结果为:

[A, B, C, D, E, F]

总结

本文介绍了两种常用的方法来将两个List合并为一个。第一种方法是使用List的addAll方法,将一个List的所有元素添加到另一个List中。第二种方法是使用Java 8的Stream API,将两个List转换为Stream,然后使用Stream的concat方法将它们合并为一个新的List。通过这两种方法,我们可以轻松地处理两个List的合并问题。

希望本文对您有所帮助!如果您有任何问题或建议,欢迎留言讨论。

甘特图

下面是一个使用甘特图展示合并两个List的过程的示例。

gantt
    dateFormat  YYYY-MM-DD
    title 合并两个List的过程

    section 创建List
    创建List1           : done, 2021-01-01, 1d
    创建List2           : done, 2021-01-01, 1d

    section 合并List
    使用addAll方法合并List   : done, 2021-01-02, 1d
    使用Stream API合并List   : done, 2021-01-03, 1d

以上是合并两个List的整个过程,包括创建List1和List2,以及使用两种方法合并List的步骤。

参考资料

[Java List addAll方法文档](