Queue 和 Stack 的 Java LinkedList 方法

标签 java data-structures stack queue linked-list

如果您查看 Java 的 LinkedList 方法,它确实提供了对 Queue、Stack、Deque 的操作。

而且我知道您可以使用 LinkedList 实现 Queue、Stack 或 Deque。但是,如果您查看 C# 实现,就会发现 Queue 和 Stack 使用数组。

我的好奇心是,为什么他们为链表提供 push(T e) 方法?

为什么 Queue 和 Stack 不是独立的类,就像 C# 一样。

下面是 push 和 pop 的代码,真是废话。但是为什么?

public void push(Object obj)
{
    addFirst(obj);
}

public Object pop()
{
    return removeFirst();
}

如果你看HashMap,或者HashSet,它内部使用的是array,对应的还有LinkedHashSet和map来保持排序。

这并不是真的令人困惑,但它确实没有意义。

为什么java有这样的实现?

最佳答案

关注数据结构实现:

链表对于频繁的添加和删除是有效的。 (因为 Queue 和 Stack 通常会这样做,迭代操作很少见)。数组不是,它需要数组复制操作,耗时

关于Queue 和 Stack 的 Java LinkedList 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7656771/

相关文章:

java - Jersey 2 + Spring 4 + jetty-maven-plugin

java - 如何检测多组词 OpenNLP

java - 用于搜索的同义词数据结构

python - 保存堆栈?

uiviewcontroller - 从堆栈中删除 ViewController

java - 如何在基于 Spring DAO 的应用程序中实现 xml?

java - Android:使用 LeadingMarginSpan 在 TextView 中显示项目符号列表?

c - 为什么我们需要在给定的问题解决方案中初始化 MaxhourglassSum=(-63) ?

algorithm - 哪种排序数据结构针对查找范围内的项目进行了优化?

stack - 如何清空列表