Java中的AbstractQueue add()方法及示例
AbstractQueue 的 add(E e) 方法如果立即插入指定的元素而不违反容量限制,则将其插入到此队列中。如果当前没有可用空间,则返回true并抛出IllegalStateException异常。
语法:
public boolean add(E e)
参数: 该方法接受一个必填参数 e 它是要插入到队列中的元素。
返回值: 如果元素在队列中插入,则此方法返回true,否则返回false。
异常: 该方法会抛出以下异常:
- IllegalStateException :如果由于容量限制,此时无法添加元素
- NullPointerException :如果指定元素为null
- ClassCastException :如果指定元素的类防止将其添加到此队列中
- IllegalArgumentException :如果此元素的某些属性防止将其添加到此队列中
以下代码示例说明add()方法的用法:
程序1:
// Java program to illustrate the
// AbstractQueue add() 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>
AQ = new LinkedBlockingQueue<Integer>();
// Populating AQ
AQ.add(10);
AQ.add(20);
AQ.add(30);
AQ.add(40);
AQ.add(50);
// print AQ
System.out.println("AbstractQueue contains : " + AQ);
}
}
AbstractQueue contains : [10, 20, 30, 40, 50]
程序2: 抛出IllegalStateException异常的程序
// Java program to illustrate the
// AbstractQueue add() method
// IllegalStateException
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>
AQ = new LinkedBlockingQueue<Integer>(2);
// Populating AQ
AQ.add(10);
AQ.add(20);
AQ.add(30);
AQ.add(40);
AQ.add(50);
// print AQ
System.out.println("AbstractQueue contains : " + AQ);
}
catch (Exception e) {
System.out.println("exception: " + e);
}
}
}
exception: java.lang.IllegalStateException: Queue full
程序3: 抛出NullPointerException异常的程序
// Java程序,演示AbstractQueue add()方法
// NullPointerException
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
public class GFG1 {
public static void main(String[] argv)
throws Exception
{
try {
// 创建AbstractQueue<Integer>对象
AbstractQueue<Integer>
AQ = new LinkedBlockingQueue<Integer>();
// 填充AQ
AQ.add(10);
AQ.add(20);
AQ.add(30);
AQ.add(null);
AQ.add(50);
// 输出AQ
System.out.println("AbstractQueue 包含: " + AQ);
}
catch (Exception e) {
System.out.println("异常: " + e);
}
}
}
异常: java.lang.NullPointerException
参考: https://docs.oracle.com/javase/8/docs/api/java/util/AbstractQueue.html#add-E-