2009-08-24 52 views
7

嗯。我注意到Stack是Vector的一个子类,我认为Vector和Hashtable被认为是“旧”数据结构,因为即使你不需要它,它们的内置同步也是如此。 (与列表,地图等不提供给你)java.util.Stack适当的数据结构?

这是一个类,而不是一个接口。

是否有更现代的推荐选择?

回答

15

java.util.Deque

双端也可以被用来作为LIFO(后进先出)堆栈。这个接口应优先于传统的Stack类使用。当一个deque用作堆栈时,元素会从deque的开始处被推入并弹出。

+3

Collections.asLifoQueue会将'Deque'变成一个“适当”的LIFO队列。 – 2009-08-24 03:03:40

2

我结束了为我的目的使用LinkedList(add()和removeLast()作为推送和弹出操作)。糟糕,看起来像这是一个重复的Q.