Java中的AbstractQueue addAll()方法及示例

Java中的AbstractQueue addAll()方法及示例

AbstractQueue 类的 addAll(E e) 方法将指定集合中的所有元素添加到此队列中。

语法:

public boolean addAll(Collection c)

参数: 此方法接受一个必填参数 collection ,该参数包含要添加到此队列中的元素。

返回值: 如果此调用导致此队列发生更改,则该方法返回 true

异常: 该方法抛出以下异常:

  • IllegalStateException :如果由于插入限制,现在无法添加所有元素。
  • NullPointerException :如果指定的集合包含空元素,而此队列不允许具有空元素,或者指定的集合为null。
  • ClassCastException – 如果指定集合中元素的类阻止将其添加到此队列中。
  • IllegalArgumentException – 如果指定集合中元素的某些属性阻止将其添加到此队列中,或者指定的集合为此队列。

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

程序1:

// Java程序说明
// AbstractQueue addAll()方法
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
public class GFG1 {
    public static void main(String[] argv)
        throws Exception
    {
        // 创建AbstractQueue <Integer>对象
        AbstractQueue <Integer>
            AQ1 = new LinkedBlockingQueue <Integer>();

        // AQ1中添加元素
        AQ1.add(10);
        AQ1.add(20);
        AQ1.add(30);
        AQ1.add(40);
        AQ1.add(50);

        // 打印AQ1
        System.out.println("AbstractQueue1包含: " + AQ1);

        AbstractQueue <Integer>
            AQ2 = new LinkedBlockingQueue<Integer>();

        // 最初打印AQ2
        System.out.println("AbstractQueue2最初包含: " + AQ2);

        // 将AQ1的元素添加到AQ2中
        AQ2.addAll(AQ1);

        System.out.println("添加后的AbstractQueue1包含: " + AQ2);
    }
}
AbstractQueue1包含:[10, 20, 30, 40, 50]
AbstractQueue2最初包含:[]
添加后的AbstractQueue1包含:[10, 20, 30, 40, 50]

程序2: IllegalStateException的程序示例

// Java程序演示了AbstractQueue的addAll()方法
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
  
public class GFG1 {
    public static void main(String[] argv)
        throws Exception
    {
        try {
            // 创建对象AbstractQueue< Integer>
            AbstractQueue<Integer>
                AQ1 = new LinkedBlockingQueue<Integer>();

            // AQ1填充
            AQ1.add(10);
            AQ1.add(20);
            AQ1.add(30);
            AQ1.add(40);
            AQ1.add(50);

            // 打印AQ
            System.out.println("AbstractQueue1包含: " + AQ1);

            AbstractQueue<Integer>
                AQ2 = new LinkedBlockingQueue<Integer>(3);

            // 打印AQ2
            System.out.println("AbstractQueue2最初包含: " + AQ2);

            // 在AQ2中添加AQ1的元素
            AQ2.addAll(AQ1);

            System.out.println("加入AQ1后,AbstractQueue1包含: " + AQ2);
        }
        catch (Exception e) {
            System.out.println("异常: " + e);
        }
    }
}
AbstractQueue1包含:[10,20,30,40,50]
AbstractQueue2最初包含:[]
异常:java.lang.IllegalStateException:队列已满

程序3: NullPointerException的程序

// Java程序演示了AbstractQueue的addAll()方法
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
  
public class GFG1 {
    public static void main(String[] argv)
        throws Exception
    {
        try {
            // 创建对象AbstractQueue< Integer>
            AbstractQueue<Integer>
                AQ1 = null;

            // 打印AQ1
            System.out.println("AbstractQueue1包含: " + AQ1);

            AbstractQueue<Integer>
                AQ2 = new LinkedBlockingQueue<Integer>(3);

            // 打印AQ2
            System.out.println("AbstractQueue2最初包含: " + AQ2);

            // 在AQ2中添加AQ1的元素
            AQ2.addAll(AQ1);

            System.out.println("加入AQ1后,AbstractQueue1包含: " + AQ2);
        }
        catch (Exception e) {
            System.out.println("异常: " + e);
        }
    }
}
AbstractQueue1包含: null
AbstractQueue2最初包含: []
异常: java.lang.NullPointerException

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程