Java ArrayDeque addAll()方法
ArrayDeque的 addAll() 方法用于在ArrayDeque的末尾插入作为参数传递的集合中的所有元素。为了在ArrayDeque中加入一个集合的元素,我们必须遍历该集合,并通过addLast(E e)方法在ArrayDeque中加入每个元素。这个方法的工作原理和我们在这里讨论的一样,但工作量较小。如果这个deque因调用此方法而发生变化,则此方法返回True。
语法
public boolean addAll(Collection<? extends E> c)
参数: 该方法需要一个参数c,代表我们要插入到这个deque中的元素集合。
返回: 如果这个deque因为调用这个方法而改变,这个方法返回True。
异常: 如果指定的集合或其任何元素为空,该方法将抛出NullPointerException。
下面的程序说明了ArrayDeque的addAll()方法:
程序1: 演示ArrayDeque的addAll()方法的程序,它将添加一个包含数字的集合。
// Java Program Demonstrate addAll()
// method of ArrayDeque
  
import java.util.*;
public class GFG {
  
    public static void main(String[] args)
    {
  
        // create an ArrayDeque which going to
        // contains a list of Numbers
        ArrayDeque<Integer> Numbers = new ArrayDeque<Integer>();
  
        // Add Number to list
        Numbers.add(23);
        Numbers.add(32);
        Numbers.add(45);
        Numbers.add(63);
  
        // print ArrayDeque before calling addAll()
        System.out.println("Before calling addAll()");
        print(Numbers);
  
        // create a collection of Number to
        // add in ArrayDeque using addAll()
        ArrayList<Integer> col = new ArrayList<Integer>();
  
        // add Numbers in collection
        col.add(74);
        col.add(65);
        col.add(84);
  
        // add the elements of collection at the end
        // of ArrayDeque using addAll()
        Numbers.addAll(col);
  
        // print ArrayDeque
        System.out.println("After calling addAll()");
        print(Numbers);
    }
  
    // printing all elements of ArrayDeque
    public static void print(ArrayDeque<Integer> arDe)
    {
  
        arDe.forEach((n) -> System.out.print(n + " "));
  
        System.out.println();
    }
}
输出。
Before calling addAll()
23 32 45 63 
After calling addAll()
23 32 45 63 74 65 84
程序2: 演示ArrayDeque的addAll()方法的程序,该方法将添加一个学生姓名的集合。
// Java Program Demonstrate addAll()
// method of ArrayDeque
  
import java.util.*;
public class GFG {
  
    public static void main(String[] args)
    {
        // create an ArrayDeque which going to
        // contains a list of Student names which is actually
        // string values
        ArrayDeque<String> students = new ArrayDeque<String>();
  
        // Add Strings to list
        // each string represents student name
        students.add("Ram");
        students.add("Mohan");
        students.add("Sohan");
        students.add("Rabi");
  
        // print ArrayDeque before calling addAll()
        System.out.println("Before calling addAll()");
        print(students);
  
        // create a collection of String to
        // add in ArrayDeque using addAll()
        LinkedList<String> col = new LinkedList<String>();
  
        // add Names in collection
        col.add("Rohan");
        col.add("Kartik");
  
        // add the elements of collection at the end
        // of ArrayDeque using addAll()
        students.addAll(col);
  
        // print ArrayDeque
        System.out.println("After calling addAll()");
        print(students);
    }
  
    // printing all elements of ArrayDeque
    public static void print(ArrayDeque<String> arDe)
    {
  
        System.out.println("List of Students Name:");
  
        arDe.forEach((n) -> System.out.print(" | " + n + " | "));
  
        System.out.println("\n");
    }
}
输出。
Before calling addAll()
List of Students Name:
 | Ram |  | Mohan |  | Sohan |  | Rabi | 
After calling addAll()
List of Students Name:
 | Ram |  | Mohan |  | Sohan |  | Rabi |  | Rohan |  | Kartik |
程序3: 演示由addAll()方法引发的异常的程序。
// Java Program Demonstrate Exception thrown by addAll()
// method of ArrayDeque
  
import java.util.*;
public class GFG {
  
    public static void main(String[] args)
    {
  
        // create an ArrayDeque which going to
        // contains a list of Numbers
        ArrayDeque<Integer> Numbers = new ArrayDeque<Integer>();
  
        // Add Number to list
        Numbers.add(223);
        Numbers.add(132);
        Numbers.add(345);
        Numbers.add(563);
  
        // create a collection of Number which is null
        ArrayList<Integer> col = null;
  
        try {
            // call addAll() method
            Numbers.addAll(col);
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}
输出。
java.lang.NullPointerException
参考资料: https://docs.oracle.com/javase/10/docs/api/java/util/ArrayDeque.html#addAll(java.util.Collection)
极客教程