【发布时间】:2011-12-01 04:32:20
【问题描述】:
如果您查看 Java 的 LinkedList 方法,它确实提供了队列、堆栈、双端队列的操作。
我知道您可以使用 LinkedList 实现队列、堆栈或双端队列。如果您查看 C# 实现,队列和堆栈使用数组。
我的好奇心是,为什么他们为链表提供 push(T e) 方法?
为什么 Queue 和 Stack 不是独立的类,就像 C# 一样。
下面是 push 和 pop 的代码。但为什么呢?
public void push(Object obj)
{
addFirst(obj);
}
public Object pop()
{
return removeFirst();
}
如果你看HashMap,或者HashSet,它内部使用数组,并且有LinkedHashSet和对应的map来保持排序。
这并没有真正令人困惑,但它确实没有意义。
为什么java有这样的实现?
【问题讨论】:
标签: java data-structures stack queue linked-list