【发布时间】:2012-03-04 04:58:59
【问题描述】:
java.util.Queue<TreeNode> queue = new java.util.LinkedList<TreeNode>();
LinkedList 实现了队列。 Queue不应该在上面语句的右边,LinkedList在左边吗?
【问题讨论】:
-
不,
Queue是一个接口;LinkedList是一个实现。 -
为什么?你认为
new Queue()是什么意思? -
Queue是一种数据结构,允许将数据推送到一端并从另一端获取数据。有很多方法可以实现显示这种行为的结构:LinkedList就是其中之一。 -
@trashgod 我是 Java 初学者。我知道 Queue 是一个接口,LinkedList 已经实现了它。实现接口的类创建对象对吗?所以,这就是为什么我认为 LinkedList 应该在另一边
-
我可能会看到你的困惑。你可能会想'当我说“int i;”时我要求将 i 实现为 int;那么队列怎么可能在左边。但这还不是。左边是您需要的类型/行为。你分配给它的是具体的。因此,在您的情况下,“队列”需要看起来像队列;并且您正在为它分配(或使用它初始化)具体类型 LinkedList。
标签: java data-structures queue linked-list