如何在 java 中实例化队列对象?
2022-08-31 07:16:58
当我尝试:
Queue<Integer> q = new Queue<Integer>();
编译器给我一个错误。有什么帮助吗?
另外,如果我想初始化队列,我必须实现队列的方法吗?
当我尝试:
Queue<Integer> q = new Queue<Integer>();
编译器给我一个错误。有什么帮助吗?
另外,如果我想初始化队列,我必须实现队列的方法吗?
队列
是一个接口。除非通过匿名内部类,否则无法直接实例化接口。通常,这不是您要为集合执行的操作。相反,请选择现有实现。例如:
Queue<Integer> q = new LinkedList<Integer>();
或
Queue<Integer> q = new ArrayDeque<Integer>();
通常,您可以根据感兴趣的性能和并发特征来选择集合实现。
A 是一个接口,这意味着您不能直接构造一个。Queue
Queue
最好的选择是从已经实现接口的类构造,如下所示之一:、、或 。Queue
AbstractQueue
ArrayBlockingQueue
ArrayDeque
ConcurrentLinkedQueue
DelayQueue
LinkedBlockingQueue
LinkedList
PriorityBlockingQueue
PriorityQueue
SynchronousQueue
另一种方法是编写自己的类,该类实现必要的队列接口。除非在极少数情况下,您希望做一些特别的事情,同时为程序的其余部分提供.Queue
public class MyQueue<T extends Tree> implements Queue<T> {
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<Tree>() {
public Tree element() {
...
};
public boolean offer(Tree element) {
...
};
...
};