GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • java.evolved
  • ←
  • →

This view

  • Original page
  • New address

GeezerVison is showing javaevolved.dev — Stack to Deque and ArrayDeque | java.evolved

Home / Collections / Stack to Deque and ArrayDeque
Collections Beginner

Stack to Deque and ArrayDeque

  • 🐛 Report a code issue
  • 🌐 Report a translation issue
  • 💡 Suggest a new pattern

Use the Deque interface with ArrayDeque instead of the legacy Stack class.

Collections
Code Comparison
✕ 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();
Share 𝕏
See a problem with this code? Let us know.
Why the modern way wins
🎯

Better abstraction

Deque explicitly models both stack and queue operations.

⚡

Lower overhead

ArrayDeque avoids Vector's legacy synchronization.

🧩

More flexible

The same interface supports LIFO and FIFO algorithms.

Old Approach
Stack
Modern Approach
Deque with ArrayDeque
Since JDK
6
Difficulty
Beginner
JDK Support
Stack to Deque and ArrayDeque
Available

Available since JDK 6 (December 2006)

How it works

Stack extends the legacy synchronized Vector class. Deque models stack operations directly, and ArrayDeque is the preferred general-purpose implementation for in-memory LIFO work.

Related Documentation
Deque (Java 25) ↗ ArrayDeque (Java 25) ↗ Stack (Java 25) ↗
Proof
View proof source ↗
Related patterns
Collections Beginner

Sequenced collections

Java 8
// Get last element
Object last = list.get(list.size() - 1);
// Get first
Object first = list.get(0);
// Reverse iteration: manual
Java 21+
var last = list.getLast();
var first = list.getFirst();
var reversed = list.reversed();
Hover to see modern ➜
JDK 21+ →
Collections Beginner

Reverse list iteration

Java 8
for (ListIterator<String> it =
        list.listIterator(list.size());
    it.hasPrevious(); ) {
    String element = it.previous();
    System.out.println(element);
}
Java 21+
for (String element : list.reversed()) {
    IO.println(element);
}
Hover to see modern ➜
JDK 21+ →
Collections Beginner

Immutable list creation

Java 8
List<String> list =
    Collections.unmodifiableList(
        new ArrayList<>(
            Arrays.asList("a", "b", "c")
        )
    );
Java 9+
List<String> list =
    List.of("a", "b", "c");
Hover to see modern ➜
JDK 9+ →
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.