跳到主要内容

Java ArrayList addAll() 方法

addAll() 方法将一个集合中的所有元素添加到 arraylist 中。

示例

import java.util.ArrayList;

class Main {
public static void main(String[] args) {

// 创建一个 arraylist
ArrayList<String> languages = new ArrayList<>();
languages.add("Java");
languages.add("Python");
System.out.println("Languages: " + languages);

// 创建另一个 arraylist
ArrayList<String> programmingLang = new ArrayList<>();

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

System.out.println("Programming Languages: " + programmingLang);
}
}

// 输出:Languages: [Java, Python]
// Programming Languages: [Java, Python]

ArrayList addAll() 的语法

addAll() 方法的语法为:

arraylist.addAll(int index, Collection c)

这里的 arraylistArrayList 类的一个对象。

addAll() 方法的参数

ArrayList 的 addAll() 方法可以接受两个参数:

  • index(可选)- 集合中的所有元素被插入的索引位置
  • collection - 包含要插入元素的集合

如果未传递 index 参数,则集合会被追加到 arraylist 的末尾。

addAll() 方法的返回值

  • 如果集合成功插入到 arraylist,则返回 true
  • 如果指定的集合为 null,则抛出 NullPointerException
  • 如果 index 超出范围,则抛出 IndexOutOfBoundsException

示例 1:使用 ArrayList addAll() 插入元素

import java.util.ArrayList;

class Main {
public static void main(String[] args) {

// 创建一个 arraylist
ArrayList<Integer> primeNumbers = new ArrayList<>();
// 向 arraylist 添加元素
primeNumbers.add(3);
primeNumbers.add(5);
System.out.println("Prime Numbers: " + primeNumbers);

// 创建另一个 arraylist
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(2);

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

System.out.println("Numbers: " + numbers);
}
}

输出

Prime Numbers: [3, 5]
Numbers: [1, 2, 3, 5]

在上面的示例中,我们创建了两个名为 primeNumbersnumbers 的 arraylists。请注意这行代码,

numbers.addAll(primeNumbers);
```在这里,`addAll()` 方法没有包含可选的 `index` 参数。因此,从 arraylist `primeNumbers` 中的所有元素都被添加到了 arraylist `numbers` 的末尾。

**注意**:我们使用了 `add()` 方法向 arraylist 添加单个元素。要了解更多,请访问 [Java ArrayList add()](/tutorials/java-library/arraylist/add)

## 示例 2:向指定位置插入元素

```java exec
import java.util.ArrayList;

class Main {
public static void main(String[] args) {
ArrayList<String> languages1 = new ArrayList<>();
languages1.add("Java");
languages1.add("Python");
System.out.println("ArrayList 1: " + languages1);

// 创建另一个 arraylist
ArrayList<String> languages2 = new ArrayList<>();
languages2.add("JavaScript");
languages2.add("C");
System.out.println("ArrayList 2: " + languages2);

// 将 languages1 中的元素添加到 languages2 的索引 1 处
languages2.addAll(1, languages1);

System.out.println("更新后的 ArrayList 2: " + languages2);
}
}

输出

ArrayList 1: [Java, Python]
ArrayList 2: [JavaScript, C]
Updated ArrayList 2: [JavaScript, Java, Python, C]

在上面的示例中,我们有两个名为 languages1languages2 的 arraylists。请注意这行代码,

languages2.addAll(1, languages1);

这里,addAll() 包含了可选的 index 参数。因此,所有来自 arraylist languages1 的元素都被添加到了 languages2 的索引 0 处。

示例 3:从 Set 向 ArrayList 插入元素

import java.util.ArrayList;
import java.util.HashSet;

class Main {
public static void main(String[] args) {

// 创建一个字符串类型的 hashset
HashSet<String> set = new HashSet<>();

// 向 hashset 添加元素
set.add("Java");
set.add("Python");
set.add("JavaScript");
System.out.println("HashSet: " + set);

// 创建一个 arraylist
ArrayList<String> list = new ArrayList<>();

// 向 arraylist 添加元素
list.add("English");
System.out.println("初始 ArrayList: " + list);

// 将 hashset 中的所有元素添加到 arraylist
list.addAll(set);

System.out.println("更新后的 ArrayList: " + list);
}
}

输出

Set: [Java, JavaScript, Python]
Initial ArrayList: [English]
Updated ArrayList: [English, Java, JavaScript, Python]

在上面的示例中,我们创建了一个名为 set 的 hashset 和一个名为 list 的 arraylist。请注意这行代码,

list.addAll(set);

这里,我们使用了 addAll() 方法将 hashset 的所有元素添加到了 arraylist 中。方法中没有出现可选的 index 参数。因此,所有元素都被添加到了 arraylist 的末尾。