Java AbstractQueue的addAll()方法及示例

Java AbstractQueue的addAll()方法及示例

AbstractQueueaddAll(E e) 方法将指定集合中的所有元素添加到该队列中。

语法

public boolean addAll(Collection c)

参数: 该方法接受一个强制参数 集合 ,其中包含要添加到该队列的元素。

返回: 如果这个队列由于调用而发生了变化,该方法返回

异常: 这个方法抛出以下异常。

  • IllegalStateException :如果由于插入限制,此时不能添加所有的元素。
  • NullPointerException :如果指定的集合包含一个空元素,而这个队列不允许空元素,或者指定的集合是空的
  • ClassCastException – 如果指定集合中的元素的类别阻止它被添加到这个队列中
  • IllegalArgumentException – 如果指定集合的某个元素的某些属性阻止它被添加到这个队列中,或者如果指定的集合是这个队列。

下面的程序说明了addAll()方法。

程序1 :

// Java program to illustrate the
// AbstractQueue addAll() method
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
  
public class GFG1 {
    public static void main(String[] argv)
        throws Exception
    {
        // Creating object of AbstractQueue<Integer>
        AbstractQueue<Integer>
            AQ1 = new LinkedBlockingQueue<Integer>();
  
        // Populating AQ1
        AQ1.add(10);
        AQ1.add(20);
        AQ1.add(30);
        AQ1.add(40);
        AQ1.add(50);
  
        // print AQ
        System.out.println("AbstractQueue1 contains : " + AQ1);
  
        AbstractQueue<Integer>
            AQ2 = new LinkedBlockingQueue<Integer>();
  
        // print AQ2 initially
        System.out.println("AbstractQueue2 initially contains : " + AQ2);
  
        // adds elements of AQ1 in AQ2
        AQ2.addAll(AQ1);
  
        System.out.println("AbstractQueue1 after addition contains : " + AQ2);
    }
}

输出。

AbstractQueue1 contains : [10, 20, 30, 40, 50]
AbstractQueue2 initially contains : []
AbstractQueue1 after addition contains : [10, 20, 30, 40, 50]

程序2: IllegalStateException的程序

// Java program to illustrate the
// AbstractQueue addAll() method
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
  
public class GFG1 {
    public static void main(String[] argv)
        throws Exception
    {
        try {
            // Creating object of AbstractQueue<Integer>
            AbstractQueue<Integer>
                AQ1 = new LinkedBlockingQueue<Integer>();
  
            // Populating AQ1
            AQ1.add(10);
            AQ1.add(20);
            AQ1.add(30);
            AQ1.add(40);
            AQ1.add(50);
  
            // print AQ
            System.out.println("AbstractQueue1 contains : " + AQ1);
  
            AbstractQueue<Integer>
                AQ2 = new LinkedBlockingQueue<Integer>(3);
  
            // print AQ2 initially
            System.out.println("AbstractQueue2 initially contains : " + AQ2);
  
            // adds elements of AQ1 in AQ2
            AQ2.addAll(AQ1);
  
            System.out.println("AbstractQueue1 after addition contains : " + AQ2);
        }
        catch (Exception e) {
            System.out.println("Exception: " + e);
        }
    }
}

输出。

AbstractQueue1 contains : [10, 20, 30, 40, 50]
AbstractQueue2 initially contains : []
Exception: java.lang.IllegalStateException: Queue full

程序3: NullPointerException的程序

// Java program to illustrate the
// AbstractQueue addAll() method
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
  
public class GFG1 {
    public static void main(String[] argv)
        throws Exception
    {
        try {
            // Creating object of AbstractQueue<Integer>
            AbstractQueue<Integer>
                AQ1 = null;
  
            // print AQ
            System.out.println("AbstractQueue1 contains : " + AQ1);
  
            AbstractQueue<Integer>
                AQ2 = new LinkedBlockingQueue<Integer>(3);
  
            // print AQ2 initially
            System.out.println("AbstractQueue2 initially contains : " + AQ2);
  
            // adds elements of AQ1 in AQ2
            AQ2.addAll(AQ1);
  
            System.out.println("AbstractQueue1 after addition contains : " + AQ2);
        }
        catch (Exception e) {
            System.out.println("Exception: " + e);
        }
    }
}

输出。

AbstractQueue1 contains : null
AbstractQueue2 initially contains : []
Exception: java.lang.NullPointerException

参考资料: https://docs.oracle.com/javase/8/docs/api/java/util/AbstractQueue.html#addAll-E-

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程