Java中如何将两个List合并或连接为一个List?
- 后端开发
- 2025-10-25
- 5
在Java中,将两个List合并或操作的方法有很多种,以下是一些常见的操作以及它们的实现方法:
使用addAll()方法合并两个List
addAll()方法是List接口中的一个方法,用于将指定集合中的所有元素添加到列表的末尾,以下是如何使用addAll()方法合并两个List的示例:
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> list1 = new ArrayList<>(); List<Integer> list2 = new ArrayList<>(); // 添加元素到list1和list2 list1.add(1); list1.add(2); list1.add(3); list2.add(4); list2.add(5); list2.add(6); // 合并list1和list2 list1.addAll(list2); // 打印合并后的list1 System.out.println(list1); } }
使用Arrays.asList()方法合并两个List
Arrays.asList()方法可以将数组转换为列表,如果需要合并两个List,可以先创建一个包含两个List的数组,然后使用Arrays.asList()将其转换为列表,以下是如何使用Arrays.asList()方法合并两个List的示例:
使用List.addAll()方法合并两个List
除了使用addAll()方法合并两个List,还可以使用List接口的addAll()方法,以下是如何使用List.addAll()方法合并两个List的示例:

使用Stream.concat()方法合并两个List
从Java 8开始,可以使用Stream.concat()方法合并两个Stream,以下是如何使用Stream.concat()方法合并两个List的示例:
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Integer> list1 = Arrays.asList(1, 2, 3); List<Integer> list2 = Arrays.asList(4, 5, 6); // 使用Stream.concat()合并list1和list2 List<Integer> combinedList = Stream.concat(list1.stream(), list2.stream()).collect(Collectors.toList()); // 打印合并后的combinedList System.out.println(combinedList); } }
FAQs
Q1: 如何在Java中将两个List合并为一个List,但保持两个List的顺序不变?
A1: 如果需要保持两个List的顺序不变,可以使用addAll()方法将一个List添加到另一个List的末尾,以下是一个示例:

List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3)); List<Integer> list2 = new ArrayList<>(Arrays.asList(4, 5, 6)); list1.addAll(0, list2);
Q2: 如何在Java中将两个List合并为一个List,并去除重复的元素?
A2: 如果需要合并两个List并去除重复的元素,可以使用Set集合的特性,以下是一个示例:
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3)); List<Integer> list2 = new ArrayList<>(Arrays.asList(3, 4, 5)); Set<Integer> set = new HashSet<>(list1); set.addAll(list2); List<Integer> combinedList = new ArrayList<>(set);
