章
目
录
ArrayList.addAll(collection)
方法将指定集合中的所有元素追加到当前 ArrayList 的末尾。追加元素的顺序与参数集合的迭代器返回它们的顺序相同。要向列表添加单个项目,建议使用ArrayList.add() 方法。
请注意,我们可以向 ArrayList 添加任何类型的元素,但为了使应用程序代码更可预测,在编译时应该仅使用泛型添加特定类型的元素。如果不这样做,可能会在运行时引发 ClassCastException
。
//快速指南
//创建arraylist
ArrayList<String> arraylist = new ArrayList<>();
//需要添加到arraylist的元素集合
List<String> newElements = Arrays.asList("e", "f");
//添加到arraylist末尾
arraylist.addAll(newElements);
//添加到指定index索引位置
arraylist.addAll(2, newElements);
1.ArrayList.addAll() 方法
addAll()
方法首先确保列表中有足够的空间。如果列表没有足够的空间,它会通过向后备数组中添加更多空间来扩展列表。
然后 addAll()
将新元素追加到列表的末尾或指定的索引位置。
public boolean addAll(Collection<? extends E> c);
public boolean addAll(int fromIndex, Collection<? extends E> c);
- 方法参数:包含要添加到此列表的元素的集合。当存在
fromIndex
参数时,集合项目将插入到指定的索引位置。 - 返回值:如果此列表因此而更改,则返回
true
。 - 抛出异常:如果指定的集合为 null,则抛出 NullPointerException。
2.示例:向 ArrayList 添加集合
为了演示目的,我们创建了两个包含字符串的 ArrayList。第一个 ArrayList 包含 4 个元素,而第二个 ArrayList 包含 2 个字符串。
ArrayList<String> list1 = new ArrayList<>(); //list 1
list1.add("A");
list1.add("B");
list1.add("C");
list1.add("D");
ArrayList<String> list2 = new ArrayList<>(); //list 2
list2.add("E");
list2.add("F");
2.1. 追加项目到 ArrayList 末尾
默认情况下,addAll()
方法将来自参数集合的元素追加到调用该方法的当前 ArrayList 的末尾。
例如,以下 Java 程序使用 addAll()
将另一个列表的元素添加到当前 ArrayList 中。我们声明了泛型列表类型,以确保在运行时获得类型安全性。
list1.addAll(list2);
System.out.println(list1); //[A, B, C, D, E, F]
2.2. 在指定位置追加项目
当我们想要在指定索引处追加列表项时,可以将该索引位置传递给方法参数。这还可以帮助在当前 ArrayList 的开头添加列表项,即在元素之前添加。
例如,让我们传递 ‘fromIndex’,该方法将在指定集合的元素插入到的位置。我们将元素插入到索引位置 2,即在当前列表的中间。
list1.addAll(2, list2);
System.out.println(list1); //[A, B, E, F, C, D]
3.结论
ArrayList
类非常灵活,提供了许多方便的方法来添加或删除元素。addAll()
就是其中一种可以在单个语句中添加多个元素的方法。
尽管如此,如果不使用泛型,程序员需要确保参数集合与当前 ArrayList 中的元素具有相同的类型。