2009-08-24 54 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.