17370845950

如何在Java中使用addAll方法合并集合
addAll方法用于合并集合,示例包括List追加元素和Set自动去重,其返回boolean值表示是否修改目标集合,需注意避免null调用及只读集合操作。

在Java中,addAll 方法是集合类(如 ArrayList、HashSet 等)提供的一个便捷方法,用于将一个集合中的所有元素添加到另一个集合中。这个方法常用于合并两个或多个集合。

1. 使用 addAll 合并 List 集合

对于 List 类型的集合,比如 ArrayList,可以使用 addAll 方法把另一个集合的所有元素追加到当前集合末尾。

示例代码:

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

List list2 = new ArrayList<>();
list2.add("C");
list2.add("D");

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

System.out.println(list1); // 输出: [A, B, C, D]

2. 使用 addAll 合并 Set 集合

Set 集合不允许重复元素,因此使用 addAll 时会自动去重。

示例代码:

Set set1 = new HashSet<>();
set1.add(1);
set1.add(2);

Set set2 = new HashSet<>();
set2.add(2);
set2.add(3);
set2.add(4);

// 合并 set2 到 set1,重复元素 2 不会被重复添加
set1.addAll(set2);

System.out.println(set1); // 输出: [1, 2, 3, 4]

3. addAll 的返回值与注意事项

addAll 方法返回一个 boolean 值:如果目标集合发生了修改(即成功添加了至少一个新元素),返回 true;否则返回 false。

常见注意事项:

  • 不能对 null 集合调用 addAll,否则会抛出 NullPointerException。
  • 源集合不会被修改,只有目标集合会增加元素。
  • 如果目标集合是只读集合(如 Collections.unmodifiableList 创建的),调用 addAll 会抛出 UnsupportedOperationException。

4. 合并多个集合的技巧

若要合并多个集合,可以依次调用 addAll,或者先创建一个空集合再逐个合并。

示例:

List result = new ArrayList<>();
result.addAll(list1);
result.addAll(list2);
result.addAll(list3);

基本上就这些。只要确保集合对象已初始化,并注意集合类型的特点(如 List 允许重复,Set 自动去重),使用 addAll 合并集合就很简单。