PriorityBlockingQueue add()方法在Java中
PriorityBlockingQueue 类中的 add(E e) 方法将传递给它的元素插入到此PriorityBlockingQueue的末尾。如果元素添加成功,则此方法返回true;否则返回false。
语法:
public boolean add(E e)
参数: 此方法需要一个必需的参数 e ,即要插入到PriorityBlockingQueue中的元素。
返回值: 此方法返回一个 boolean 响应。如果元素添加成功,则返回 true ,否则返回 false 。
异常: 此方法抛出以下异常:
- ClassCastException: 如果传递的元素不能与队列中包含的元素进行比较,以保持优先级队列的排序。
- NullPointerException: 如果传递的元素为空。
下面的程序演示了PriorityBlockingQueue的add()方法:
示例1:
// Java程序演示add(E e)方法
//来自PriorityBlockingQueue
import java.util.concurrent.PriorityBlockingQueue;
public class GFG {
public static void main(String[] args)
{
//定义PriorityBlockingQueue的容量
int capacity = 15;
//创建PriorityBlockingQueue对象
PriorityBlockingQueue<Integer> PrioBlockingQueue
= new PriorityBlockingQueue<Integer>(capacity);
//添加一些数字
PrioBlockingQueue.add(526734);
PrioBlockingQueue.add(84879456);
PrioBlockingQueue.add(4586415);
//在添加操作后打印队列
System.out.println("添加一些数字后:");
System.out.println("PriorityBlockingQueue:"
+ PrioBlockingQueue);
//添加更多数字
PrioBlockingQueue.add(156116);
PrioBlockingQueue.add(61651191);
//在添加操作后打印队列
System.out.println("\n添加更多数字后:");
System.out.println("PriorityBlockingQueue:"
+ PrioBlockingQueue);
}
}
输出结果:
添加一些数字后:
PriorityBlockingQueue:[526734, 84879456, 4586415]
添加更多数字后:
PriorityBlockingQueue:[156116, 526734, 4586415, 84879456, 61651191]
示例2: 演示add()方法抛出NullPointerException。
// Java程序演示PriorityBlockingQueue的add(E e)方法抛出异常
import java.util.concurrent.PriorityBlockingQueue;
public class GFG {
public static void main(String[] args)
{
// 定义PriorityBlockingQueue的容量
int capacity = 15;
// 创建PriorityBlockingQueue对象
PriorityBlockingQueue<Integer> PrioBlockingQueue
= new PriorityBlockingQueue<Integer>(capacity);
// 添加数字
PrioBlockingQueue.add(526734);
PrioBlockingQueue.add(84879456);
PrioBlockingQueue.add(4586415);
try {
// 尝试向PriorityBlockingQueue添加null
PrioBlockingQueue.add(null);
// 在进行添加操作后打印PriorityBlockingQueue
System.out.println("PriorityBlockingQueue:"
+ PrioBlockingQueue);
}
catch (Exception e) {
System.out.println("添加null时的异常: "
+ e);
}
}
}
输出:
添加null时的异常: java.lang.NullPointerException
参考文献: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html#add-E-
极客教程