Queue是一個接口,這意味著你不能直接構造一個Queue 。
最好的select是構造一個已經實現Queue接口的類,如下所示: AbstractQueue , ArrayBlockingQueue , ConcurrentLinkedQueue , DelayQueue , DelayQueue , LinkedList , PriorityBlockingQueue , PriorityQueue或SynchronousQueue 。
另一種方法是編寫自己的類來實現必要的隊列接口。 這是不必要的,除非在極less數情況下,你希望做一些特別的事情,同時為Queue的其余部分提供一個Queue 。
public class MyQueue implements Queue { public T element() { ... your code to return an element goes here ... } public boolean offer(T element) { ... your code to accept a submission offer goes here ... } ... etc ... }
更less使用的替代方法是構造一個實現Queue的匿名類。 你可能不想這樣做,但為了覆蓋所有的基礎,它被列為選項。
new Queue() { public Tree element() { ... }; public boolean offer(Tree element) { ... }; ... };
Queue是一個接口。 除非通過匿名內部類,否則不能直接實例化接口。 通常情況下,這不是你想要做的收集。 相反,select一個現有的實現。 例如:
Queue q = new LinkedList();
要么
Queue q = new ArrayDeque();
通常情況下,您會根據您感興趣的性能和并發性特征select一個集合實現。
Queue qe=new LinkedList(); qe.add("b"); qe.add("a"); qe.add("c");
Queue是一個界面,你不能像你所做的那樣創build它的實例
隊列是一個接口,你不能明確地構造一個隊列,你將不得不實例化它的一個實現類。 就像是:
Queue linkedList = new LinkedList();
這里是關于這個主題的Java教程的鏈接。
隊列是java中的一個接口,你不能這樣做。
相反,你有兩個select:
選項1:
Queue Q = new LinkedList<>();
選項2:
Queue Q = new ArrayDeque<>();
我build議使用option2,因為它比另一個快一點
Queue接口通過額外的插入,提取和檢查操作來擴展java.util.Collection,如下所示:
+offer(element: E): boolean // 插入一個元素
+poll(): E // 檢索元素,如果隊列為空則返回NULL
+remove(): E // 檢索并刪除元素,如果隊列為空則拋出exception
+peek(): E // 檢索但不移除此隊列的頭部,如果此隊列為空,則返回null。
+element(): E // 檢索但不移除此隊列的頭部,如果te隊列為空,則拋出exception。
示例實現隊列的代碼:
java.util.Queue queue = new LinkedList<>(); queue.offer("Hello"); queue.offer("StackOverFlow"); queue.offer("User"); System.out.println(queue.peek()); while (queue.size() > 0){ System.out.println(queue.remove() + " "); } //Since Queue is empty now so this will return NULL System.out.println(queue.peek());
輸出代碼:
Hello Hello StackOverFlow User null
Java中的隊列被定義為一個接口,許多隨時可用的實現作為JDK版本的一部分存在。 這里有一些: LinkedList ,Priority Queue,ArrayBlockingQueue,ConcurrentLinkedQueue,Linked Transfer Queue, Synchronous Queue等
所以你可以創build這些類中的任何一個,并把它作為隊列引用。 例如
import java.util.LinkedList; import java.util.Queue; public class QueueExample { public static void main (String[] args) { Queue que = new LinkedList(); que.add("first"); que.offer("second"); que.offer("third"); System.out.println("Queue Print:: " + que); String head = que.element(); System.out.println("Head element:: " + head); String element1 = que.poll(); System.out.println("Removed Element:: " + element1); System.out.println("Queue Print after poll:: " + que); String element2 = que.remove(); System.out.println("Removed Element:: " + element2); System.out.println("Queue Print after remove:: " + que); } }
您也可以實現自己的自定義隊列實現隊列接口。
Queue是java中的一個接口,你不能這樣做。 嘗試:
Queue Q = new LinkedList();