1. 程式人生 > >java Queue(佇列)

java Queue(佇列)

  佇列是一個典型的先進先出的容器。即從容器的一端放入事物,從另一端取出,並且事物放入容器的順序與取出的順序是相同的。佇列常被當作一種可靠的將物件從程式的某個區域傳輸到另一個區域的途徑。佇列在併發程式設計中特別重要,因為它們可以安全地將物件從一個任務傳輸給另一個任務。

  LinkedList提供了方法以支援佇列的行為,並且它實現了Queue介面,因此LinkedList可以用作Queue的一種實現。通過將LinkedList向上轉型為Queue,下面的示例使用了在Queue介面中與Queue相關的方法:

import java.util.LinkedList;
import java.util.Queue;
import java.util.Random;


public class QueueDemo {
    public static void printQueue(Queue queue){
        while (queue.peek()!=null) {  //queue.peek 檢索,但不刪除該佇列的頭部,如果該佇列為空,則返回null。
        System.out.print(queue.remove()+" "); //檢索並刪除該佇列的頭部。把頭部的值打印出來
        }
    }
    public static void main(String[] args) {
        Queue<Integer> queue = new LinkedList<Integer>(); //將LinkedList向上轉型為Queue物件,queue的持有物件是Integer型別的
        Random rand = new Random(47); //隨機數
        for (int i = 0; i < 10; i++) {
            queue.offer(rand.nextInt(i+10)); //把隨機到的數插入佇列中去。
        }
        printQueue(queue); //列印佇列中的元素
        System.out.println();//換行
        Queue<Character> qc = new LinkedList<Character>();//將LinkedList向上轉型為Queue物件,queue的持有物件是Character型別的
        for (Character character : "Brontosaurus".toCharArray()) {//把字串轉成字元陣列 
            qc.offer(character); //把遍歷的字元插入到佇列中
        }
        printQueue(qc);//列印佇列中的字元
    }
}
上面這段程式碼的輸出結果為:

8 1 1 1 5 14 3 1 0 1 
B r o n t o s a u r u s 

對執行幾次這段程式碼其輸出結果依然是這兩串。不明白為什麼總是隨機到這些數字的可以看看下面這篇文章:https://blog.csdn.net/zhang41228/article/details/77069734

下一篇給大家普及一下棧的基礎!!!