1. 程式人生 > >Java中的佇列API——Queue

Java中的佇列API——Queue

        佇列(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。