Java合并List

发布时间:2023-05-20

一、合并List

在Java中,要合并多个List是非常普遍的需求。合并List的方法有很多,我们可以使用addAll()方法,也可以使用Java 8中的Stream API等。addAll()是最常用的方法之一,它可用于将一个List添加到另一个List中。

List<String> list1 = new ArrayList<>();
list1.add("Apple");
list1.add("Orange");
List<String> list2 = new ArrayList<>();
list2.add("Banana");
list2.add("Peach");
list1.addAll(list2);

上面的代码会将list2中的所有元素添加到list1中,最终list1中包含4个元素:"Apple","Orange","Banana","Peach"。 除了使用addAll()方法,还可以使用Java 8中的Stream API来合并List。使用Stream API可以实现更多复杂的任务,例如去除重复项等。

List<String> list1 = new ArrayList<>();
list1.add("Apple");
list1.add("Orange");
List<String> list2 = new ArrayList<>();
list2.add("Banana");
list2.add("Peach");
List<String> mergedList = Stream.of(list1, list2)
                .flatMap(Collection::stream)
                .collect(Collectors.toList());

上面的代码使用Stream API并结合flatMap()方法,将两个List合并为一个mergedList。

二、两个List合并

有时候我们只需要将两个List合并成一个。除了使用addAll()方法,我们还可以使用Collections.addAll()方法进行合并。

List<String> list1 = new ArrayList<>();
list1.add("Apple");
list1.add("Orange");
List<String> list2 = new ArrayList<>();
list2.add("Banana");
list2.add("Peach");
List<String> mergedList = new ArrayList<>(list1.size() + list2.size());
Collections.addAll(mergedList, list1.toArray(new String[0]));
Collections.addAll(mergedList, list2.toArray(new String[0]));

上面的代码使用了Collections.addAll()方法来将两个List合并成一个mergedList。

三、多个List合并成一个

如果需要将多个List合并成一个,add()方法和addAll()方法将会非常繁琐。这时,我们可以使用Java 8的Stream API来实现合并。

List<String> list1 = new ArrayList<>();
list1.add("Apple");
list1.add("Orange");
List<String> list2 = new ArrayList<>();
list2.add("Banana");
list2.add("Peach");
List<String> list3 = new ArrayList<>();
list3.add("Grapes");
list3.add("Watermelon");
List<String> mergedList = Stream.of(list1, list2, list3)
                .flatMap(Collection::stream)
                .collect(Collectors.toList());

上面的代码使用Stream API并结合flatMap()方法,将三个List合并为一个mergedList。

总结

在Java中,合并List操作非常常见,我们可以使用addAll()方法或Java 8中的Stream API来实现。除此之外,如果需要将多个List合并成一个,我们可以使用Stream API的flatMap()方法。