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-