Java AbstractList的addAll()方法及示例
java.util.AbstractList 类的 addAll() 方法用于将指定集合中的所有元素插入该列表的指定位置。
- 这将使当前在该位置的元素(如果有的话)和任何后续元素向右移动(增加它们的索引)。
- 新的元素将按照指定集合的迭代器返回的顺序出现在这个列表中。
- 如果在操作过程中,指定的集合被修改,那么这个操作的行为是未定义的。
这个实现在指定的集合上获得一个迭代器,并对其进行迭代,使用add(int, E)将从迭代器中获得的元素插入这个列表的适当位置,一次一个。为了提高效率,许多实现会覆盖这个方法。
语法
public boolean addAll(int index, Collection c)
参数: 该方法接受以下参数作为参数。
- index- 在指定的集合中插入第一个元素的索引
- c- 包含元素的集合要被添加到这个列表中。
-
返回值: 如果这个列表因调用而改变,该方法返回 true。
-
异常: 这个方法会抛出以下异常。
- NullPointerException – 如果指定的集合包含一个或多个空元素,而这个列表不允许空元素,或者指定的集合为空的话
- IndexOutOfBoundsException – 如果索引超出了范围(索引大小())。
下面是说明 addAll() 方法的例子。
例1 :
// Java program to demonstrate
// addAll() method
// for String value
import java.util.*;
public class GFG1 {
public static void main(String[] argv)
throws Exception
{
try {
// Creating object of AbstractList<String>
AbstractList<String>
arrlist1 = new ArrayList<String>();
// Populating arrlist1
arrlist1.add("A");
arrlist1.add("B");
arrlist1.add("C");
arrlist1.add("D");
arrlist1.add("E");
// print arrlist1
System.out.println("Original ArrayListlist : "
+ arrlist1);
// Creating another object of AbstractList<String>
AbstractList<String>
arrlist2 = new ArrayList<String>();
// Populating arrlist2
arrlist2.add("X");
arrlist2.add("Y");
arrlist2.add("Z");
// print arrlist2
System.out.println("ArrayList elements "
+ "to be added : "
+ arrlist2);
// adding the specified element
// starting from index 2
// using addAll() method
boolean value = arrlist1.addAll(2, arrlist2);
// print the value
System.out.println("Operation successful : "
+ value);
// print the new arrlist
System.out.println("New ArrayList : "
+ arrlist1);
}
catch (NullPointerException e) {
System.out.println("Exception thrown : " + e);
}
catch (IndexOutOfBoundsException e) {
System.out.println("Exception thrown : " + e);
}
}
}
输出。
Original ArrayListlist : [A, B, C, D, E]
ArrayList elements to be added : [X, Y, Z]
Operation successful : true
New ArrayList : [A, B, X, Y, Z, C, D, E]
例2: 对于NullPointerException
// Java program to demonstrate
// addAll() method
// for NullPointerException
import java.util.*;
public class GFG1 {
public static void main(String[] argv) throws Exception
{
try {
// Creating object of AbstractList<String>
AbstractList<String>
arrlist1 = new ArrayList<String>();
// Populating arrlist1
arrlist1.add("A");
arrlist1.add("B");
arrlist1.add("C");
arrlist1.add("D");
arrlist1.add("E");
// print arrlist1
System.out.println("Original ArrayListlist : "
+ arrlist1);
// Creating another object of AbstractList<String>
AbstractList<String> arrlist2 = null;
// printing the arrlist2
System.out.println("ArrayList to be added : "
+ arrlist2);
// adding the specified element
// starting from index 2
// using addAll() method
System.out.println("\nTrying to get"
+ " the null collection");
boolean value = arrlist1.addAll(2, arrlist2);
// print the value
System.out.println("operation successful : "
+ value);
// print the new arrlist
System.out.println("New ArrayList : "
+ arrlist1);
}
catch (NullPointerException e) {
System.out.println("Exception thrown : " + e);
}
catch (IndexOutOfBoundsException e) {
System.out.println("Exception thrown : " + e);
}
}
}
输出。
Original ArrayListlist : [A, B, C, D, E]
ArrayList to be added : null
Trying to get the null collection
Exception thrown : java.lang.NullPointerException
例3: 对于IndexOutOfBoundsException
// Java program to demonstrate
// addAll() method
// for IndexOutOfBoundsException
import java.util.*;
public class GFG1 {
public static void main(String[] argv)
throws Exception
{
try {
// Creating object of AbstractList<String>
AbstractList<String>
arrlist1 = new ArrayList<String>();
// Populating arrlist1
arrlist1.add("A");
arrlist1.add("B");
arrlist1.add("C");
arrlist1.add("D");
arrlist1.add("E");
// print arrlist1
System.out.println("Original ArrayListlist : "
+ arrlist1);
// Creating another object of AbstractList<String>
AbstractList<String>
arrlist2 = new ArrayList<String>();
// Populating arrlist2
arrlist2.add("X");
arrlist2.add("Y");
arrlist2.add("Z");
// print arrlist2
System.out.println("ArrayList elements to be added : "
+ arrlist2);
// adding the specified element
// starting from index 2
// using addAll() method
System.out.println("\nTrying to put the out"
+ " of range index ");
boolean value = arrlist1.addAll(-1, arrlist2);
// print the value
System.out.println("operation succecfull : "
+ value);
// print the new arrlist
System.out.println("New ArrayList : " + arrlist1);
}
catch (NullPointerException e) {
System.out.println("Exception thrown : " + e);
}
catch (IndexOutOfBoundsException e) {
System.out.println("Exception thrown : " + e);
}
}
}
输出。
Original ArrayListlist : [A, B, C, D, E]
ArrayList elements to be added : [X, Y, Z]
Trying to put the out of range index
Exception thrown : java.lang.IndexOutOfBoundsException: Index: -1, Size: 5
极客教程