Java 如何添加两个列表
我们可以使用List的addAll()方法来合并两个列表。
使用没有索引参数的addAll()方法
boolean addAll(Collection<? extends E> c)
将指定集合中的所有元素按指定集合的迭代器返回顺序追加到此列表的末尾(可选操作)。如果在操作正在进行时修改了指定的集合,则此操作的行为是未定义的(注意,如果指定的集合是此列表并且非空,则会发生这种情况)。
参数
- c - 包含要添加到此列表的元素的集合。
返回值
如果调用导致了列表的更改,则返回true。
抛出异常
- UnsupportedOperationException - 如果此列表不支持addAll操作。
-
ClassCastException - 如果指定集合的元素的类别阻止将其添加到此列表中。
-
NullPointerException - 如果指定的集合包含一个或多个null元素,而此列表不允许null元素,或者如果指定的集合为null。
-
IllegalArgumentException - 如果指定集合的元素的某些属性阻止将其添加到此列表中。
使用带索引参数的addAll()方法
boolean addAll(int index, Collection<? extends E> c)
将指定集合中的所有元素插入到此列表的指定位置(可选操作)。将当前在该位置的元素(如果有)和任何后续元素向右移动(增加它们的索引)。新元素将按照指定集合的迭代器返回它们的顺序出现在此列表中。如果指定的集合在操作正在进行时被修改,此操作的行为是未定义的。注意,如果指定的集合是这个列表并且它是非空的,那么这种情况将发生。
参数
- index − 从指定集合插入第一个元素的索引。
-
c − 包含要添加到此列表中的元素的集合。
返回值
如果此列表因调用而更改,则返回true。
异常
- UnsupportedOperationException − 如果此列表不支持addAll操作。
-
ClassCastException − 如果指定集合中的元素的类阻止将其添加到此列表中。
-
NullPointerException − 如果指定的集合包含一个或多个空元素,并且此列表不允许空元素,或者指定的集合为null。
-
IllegalArgumentException − 如果指定集合中元素的某些属性阻止将其添加到此列表中。
-
IndexOutOfBoundsException − 如果索引超出范围(index < 0 || index > size())。
示例
以下是使用addAll()方法将两个列表添加到示例的示例
package com.tutorialspoint;
import java.util.ArrayList;
import java.util.List;
public class CollectionsDemo {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
System.out.println("List: " + list);
List<String> list1 = new ArrayList<>();
list1.add("D");
list1.add("E");
list1.add("F");
System.out.println("List1: " + list1);
list.addAll(list1);
System.out.println("Updated List: " + list);
List<String> list2 = new ArrayList<>();
list2.add("G");
list2.add("H");
list2.add("I");
list2.addAll(0, list);
System.out.println("List2: " + list2);
}
}
输出
这将产生以下结果−
List: [A, B, C]
List1: [D, E, F]
Updated List: [A, B, C, D, E, F]
List2: [A, B, C, D, E, F, G, H, I]