Da Stack a Deque e ArrayDeque
Usa l'interfaccia Deque con ArrayDeque al posto della classe legacy Stack.
Confronto Codice
✕ Legacy Stack
Stack<String> stack = new Stack<>();
stack.push("task");
String next = stack.pop();
✓ Deque API
Deque<String> stack = new ArrayDeque<>();
stack.push("task");
String next = stack.pop();
Vedi un problema con questo codice? Faccelo sapere.
Perché vince l'approccio moderno
Astrazione migliore
Deque modella esplicitamente sia le operazioni di stack sia quelle di coda.
Minore overhead
ArrayDeque evita la sincronizzazione legacy di Vector.
Maggiore flessibilità
La stessa interfaccia supporta algoritmi LIFO e FIFO.
Approccio Vecchio
Stack
Approccio Moderno
Deque con ArrayDeque
Dal JDK
6
Difficoltà
Principiante
Supporto JDK
Da Stack a Deque e ArrayDeque
Disponibile
Disponibile dal JDK 6 (dicembre 2006)
Come funziona
Stack estende la classe sincronizzata legacy Vector. Deque modella direttamente le operazioni di uno stack e ArrayDeque è l'implementazione generica preferita per il lavoro LIFO in memoria.
Documentazione Correlata
Prova