该接口继承自Collection,提供先进先出的接口,主要包了以下三种类型的操作:
1.在队尾存;
2.从队首取;
3.查看队首;
另外有两个维度,针对异常情况,一种是抛出异常,一种是返回特定的值;
现以成对方式给出例子:
private Queue<Integer> queue;
@Before
public void init0() {
queue = new ArrayBlockingQueue<>(1);
}
1.add remove:
如果队列已满,add时抛出异常,如果队列为空,remove时抛出异常。
@Test
public void test1() {
queue.add(1);
queue.add(2);
}
@Test
public void test2() {
queue.remove();
}
java.lang.IllegalStateException: Queue full
at java.util.AbstractQueue.add(AbstractQueue.java:98)
at java.util.concurrent.ArrayBlockingQueue.add(ArrayBlockingQueue.java:312)
at com.liyao.QueueTest.test1(QueueTest.java:21)
java.util.NoSuchElementException
at java.util.AbstractQueue.remove(AbstractQueue.java:117)
at com.liyao.QueueTest.test2(QueueTest.java:26)
2.offer poll:
如果队列已满,offer时抛出false,反之返回true,如果队列为空,poll时返回null,反之返回并且移除队首元素。
@Test
public void test3() {
System.out.println(queue.offer(1));
System.out.println(queue.offer(2));
}
@Test
public void test4() {
System.out.println(queue.poll());
}
true
false
true
3.element peek
如果队列为空,element抛异常,peek返回null。
@Test
public void test5() {
System.out.println(queue.peek());
System.out.println(queue.element());
}
null
java.util.NoSuchElementException
at java.util.AbstractQueue.element(AbstractQueue.java:136)
at com.liyao.QueueTest.test5(QueueTest.java:43)