gpt4 book ai didi

Queue 和 Stack 的 Java LinkedList 方法

转载 作者:行者123 更新时间:2023-11-29 10:20:12 25 4
gpt4 key购买 nike

如果您查看 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com