一、概述
-
佇列(Queue):遵循FIFO(First In First Out 先進先出)原則
-
佇列只允許在一端進行插入操作,而在另一端進行洗掉操作,允許插入的端是佇列尾,允許洗掉的是佇列頭
二、結構示意圖
-
向一個空佇列中一次插入a、b、c三個元素

-
將佇列中的元素一個個洗掉

三、代碼示例
-
LinkedList就實作了Queue介面,我們這里以LinkedList為例
-
@Test public void test4(){ LinkedList<Integer> queue = new LinkedList<Integer>(); queue.add(1); queue.add(2); queue.add(3); System.out.println(queue.peek()); queue.pop(); System.out.println(queue.peek()); queue.pop(); System.out.println(queue.peek()); queue.pop(); }
-
代碼運行效果如下:
-

-
上述代碼我們可以發現,佇列是先進先出
四、自己動手實作一個簡單的佇列
package com.zhurouwangzi.entity; ? public class MyQueue { public MyQueue(){ element = new int[20]; size = 0; } private int[] element; private int size; ? public int push(int item){ element[size] = item; size++; return item; } ? public int pop(){ int popData = https://www.cnblogs.com/Infancy/p/element[0]; int[] newEle = new int[size-1]; System.arraycopy(element, 1, newEle, 0, size-1); element = newEle; size--; return popData; } ? public int peek(){ return element[0]; } ? public int getSize(){ return size; } }
-
測驗自己寫的簡單佇列
@Test public void test4(){ MyQueue myQueue = new MyQueue(); myQueue.push(1); myQueue.push(2); myQueue.push(3); System.out.println(myQueue.peek()); myQueue.pop(); System.out.println(myQueue.peek()); myQueue.pop(); System.out.println(myQueue.peek()); myQueue.pop(); }
-
運行效果如下:
-

-
運行可以看出來和上邊java官方提供的佇列函式是一樣的效果
轉載請注明出處:https://www.cnblogs.com/Infancy/p/12599313.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/67614.html
標籤:其他
上一篇:類實體里呼叫spark rdd 處理成員變數,結果不能保留
下一篇:Hadoop 執行簡單的編程報錯。java.io.IOException: Initialization of all the collectors faile
