2009-08-24 14 views
7

Hmm. Sto notando che Stack è una sottoclasse di Vector, e pensavo che Vector e Hashtable fossero considerati "vecchi" datastrutture a causa della loro sincronizzazione integrata anche se non ne hai bisogno. (contro Lista, Mappa, ecc. che non lo fornisce per te)java.util.Stack struttura dati appropriata?

Quella ed è una classe, non un'interfaccia.

Esiste un'alternativa più moderna e consigliata?

risposta

15

java.util.Deque

deque possono essere utilizzati anche come LIFO (Last-In-First-Out) stack. Questa interfaccia deve essere utilizzata preferibilmente rispetto alla classe di stack legacy. Quando una deque viene usata come una pila, gli elementi vengono spinti e spuntati dall'inizio della deque.

+3

Collections.asLifoQueue trasformerà un 'Deque' in una coda" corretta "LIFO. –

2

Ho finito per utilizzare LinkedList per i miei scopi (add() e removeLast() sono operazioni push e pop). Oops, sembra che questo sia un duplicato Q.