首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在java中实例化队列对象?

如何在java中实例化队列对象?
EN

Stack Overflow用户
提问于 2011-01-07 23:02:18
回答 6查看 349.2K关注 0票数 154

当我尝试的时候:

代码语言:javascript
复制
Queue<Integer> q = new Queue<Integer>();

编译器给了我一个错误。有什么帮助吗?

另外,如果我想初始化一个队列,我必须实现队列的方法吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-01-07 23:03:55

Queue是一个接口,这意味着您不能直接构造Queue

最好的选择是构造一个已经实现了Queue接口的类,如以下类之一:AbstractQueueArrayBlockingQueueArrayDequeConcurrentLinkedQueueDelayQueueLinkedBlockingQueueLinkedListPriorityBlockingQueuePriorityQueueSynchronousQueue

另一种方法是编写您自己的类,实现必要的Queue接口。除非在极少数情况下,您希望在为程序的其余部分提供Queue的同时做一些特殊的事情,否则不需要它。

代码语言:javascript
复制
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的匿名类。你可能不想这样做,但为了覆盖所有的基础,它被列为一个选项。

代码语言:javascript
复制
new Queue<Tree>() {
   public Tree element() {
     ...
   };

   public boolean offer(Tree element) {
     ...
   };
   ...
};
票数 158
EN

Stack Overflow用户

发布于 2011-01-07 23:03:45

代码语言:javascript
复制
Queue<String> qe=new LinkedList<String>();

qe.add("b");
qe.add("a");
qe.add("c");

因为Queue是一个接口,所以您不能像前面说明的那样创建它的实例

票数 42
EN

Stack Overflow用户

发布于 2011-01-07 23:04:31

Queue是一个接口;您不能显式构造一个队列。您必须实例化它的一个实现类。类似于:

代码语言:javascript
复制
Queue linkedList = new LinkedList();

Here's a link to the Java tutorial on this subject.

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4626812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档