Java Collections (LIFO Structure)

2022-09-01 01:50:38

我正在Java的集合框架中寻找LIFO结构(堆栈),但没有任何成功。基本上我想要一个非常简单的堆栈;我的完美选择是Deque,但我使用的是Java 1.5。

我希望不必在我的结构中添加另一个类,但我想知道这是否可能:

  1. Collections 框架 (1.5) 中是否有任何类可以完成这项工作?

  2. 如果没有,有没有办法在不重新实现的情况下在LIFO队列(又名堆栈)中转换队列?

  3. 如果不是,我应该为此任务扩展哪个接口或类?我想保持Sun的家伙们用Deque制作的方式是一个良好的开端。

多谢。

编辑:我忘了说Stack类:当我看到它实现了Vector类时,我对这个类产生了怀疑,而Vector类有点过时了,不是吗?


答案 1

实际上有一个 Stack 类:http://java.sun.com/j2se/1.5.0/docs/api/java/util/Stack.html

如果您不想使用它,LinkedList 类(http://java.sun.com/j2se/1.5.0/docs/api/java/util/LinkedList.html)具有 and 和 方法,使其非常适合用作堆栈或队列类。addFirstaddLastremoveFirstremoveLast


答案 2

我意识到我在这里迟到了,但是java.util.Collections(Java 7)有一个静态的“asLifoQueue”,它接受一个Deque参数并返回(显然)deque的LIFO队列视图。我不确定这是添加的是什么版本。

http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#asLifoQueue(java.util.Deque)