Java中的佇列API——Queue
阿新 • • 發佈:2019-01-02
佇列(queue)是線性表的一種,只允許在該線性表的前端(front,又稱為隊頭)進行獲取或刪除操作,而在該線性表的後端(rear,又稱為隊尾)進行插入操作。該線性表具有FIFO(先進先出)的特點,那麼Java中如何實現這一功能呢,呵呵呵,Java已經為我們提供了API——Queue,下面通過一個例子來認識一下該API:
import java.util.Queue; import java.util.LinkedList; public class TestQueue { public static void main(String[] args) { Queue<String> queue = new LinkedList<String>(); queue.offer("Hello");//將指定的元素插入此佇列(如果立即可行且不會違反容量限制),插入成功返回 true;否則返回 false。當使用有容量限制的佇列時,offer方法通常要優於 add方法——add方法可能無法插入元素,而只是丟擲一個IllegalStateException異常。 queue.offer("World"); queue.offer("!"); System.out.println(queue.size());//輸出:3 String str; while((str=queue.poll())!=null){//獲取並移除此佇列的頭,如果此佇列為空,則返回 null。 remove方法也可以獲取並移除此佇列的頭,但該方法與 poll方法的唯一不同在於:如果此佇列為空,那麼remove方法將丟擲NoSuchElementException異常。 System.out.println(str);//換行依次輸出:Hello、World、! } System.out.println(queue.size());//輸出:0 } }
該API還有兩個“獲取但並不移除此佇列頭”方法:
1、element()獲取佇列的頭但不移除此佇列的頭。如果此佇列為空,則將丟擲NoSuchElementException異常。
2、peek()獲取佇列的頭但不移除此佇列的頭。如果此佇列為空,則返回 null。