队列是一个接口,这意味着你不能直接构造一个队列。
最好的选择是构造一个已经实现Queue接口的类,例如下面的一个:AbstractQueue,ArrayBlockingQueue,ConcurrentLinkedQueue,DelayQueue,LinkedBlockingQueue,LinkedList,PriorityBlockingQueue,PriorityQueue或SynchronousQueue。
另一种方法是编写自己的类,实现必要的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 ...
}
一个更少使用的替代方法是构造一个实现Queue的匿名类。你可能不想这样做,但它被列为一个选项,以涵盖所有的基础。
new Queue() {
public Tree element() {
...
};
public boolean offer(Tree element) {
...
};
...
};