当队列满时,即队列中元素的个数等于队列的容量时,再插入元素,add方法将抛异常IllegalStateException,offer方法返回false.
验证如下
- 验证offer
public static void main(String[] args) {
Queue queue = new ArrayBlockingQueue(3);
queue.offer(1);
queue.offer(1);
queue.offer(1);
boolean result = queue.offer(1);
System.out.println(result);
}
结果
false
Process finished with exit code 0
- 验证add
public static void main(String[] args) {
Queue queue = new ArrayBlockingQueue(3);
queue.add(1);
queue.add(1);
queue.add(1);
boolean result = queue.add(1);
System.out.println(result);
}
结果
Exception in thread "main" java.lang.IllegalStateException: Queue full
at java.util.AbstractQueue.add(AbstractQueue.java:98)
at java.util.concurrent.ArrayBlockingQueue.add(ArrayBlockingQueue.java:312)
Process finished with exit code 0