用Java Collections替换旧版Stack?

Cra*_*lus 8 java collections stack

这或许是一个Java琐事问题.

我多次使用Stack实现.

我已经读过这被认为是一个遗留类,并且由于它的子类Vector使其在单线程应用程序中的性能变差.

我的问题是,Java Collection类中最好的选择是什么?

是否有另一个Stack可供选择的课程(可能是不同的名字)?

我的意思是,好的实现堆栈另一个现有的数据结构很容易,但我希望有一个现有Stack的使用.

Bri*_*ach 8

如果您阅读更新的Javadoc(例如1.6或1.7)而不是旧的1.4.2文档,您会发现:

Deque接口及其实现提供了更完整和一致的LIFO堆栈操作集,应该优先使用这个类

http://docs.oracle.com/javase/6/docs/api/java/util/Stack.html http://docs.oracle.com/javase/7/docs/api/java/util/Stack.html


JVM*_*ATL 6

在Java7中,你可以使用

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

得到一个类似Stack的对象。add()的工作方式类似于push(),remove()的工作方式类似于pop()等。我在问题提出很久之后才在这里回答,因为这似乎是新的“正确”答案。