当我尝试的时候:
Queue<Integer> q = new Queue<Integer>();
编译器给了我一个错误。有什么帮助吗?
另外,如果我想初始化一个队列,我必须实现队列的方法吗?
发布于 2011-01-07 23:03:55
Queue
是一个接口,这意味着您不能直接构造Queue
。
最好的选择是构造一个已经实现了Queue
接口的类,如以下类之一:AbstractQueue
、ArrayBlockingQueue
、ArrayDeque
、ConcurrentLinkedQueue
、DelayQueue
、LinkedBlockingQueue
、LinkedList
、PriorityBlockingQueue
、PriorityQueue
或SynchronousQueue
。
另一种方法是编写您自己的类,实现必要的Queue接口。除非在极少数情况下,您希望在为程序的其余部分提供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) {
...
};
...
};
发布于 2011-01-07 23:03:45
Queue<String> qe=new LinkedList<String>();
qe.add("b");
qe.add("a");
qe.add("c");
因为Queue
是一个接口,所以您不能像前面说明的那样创建它的实例
发布于 2011-01-07 23:04:31
Queue是一个接口;您不能显式构造一个队列。您必须实例化它的一个实现类。类似于:
Queue linkedList = new LinkedList();
https://stackoverflow.com/questions/4626812
复制相似问题