Deque Operations: Stack and Queue
Use LinkedList as a Deque to implement stack (push/pop) and queue (offer/poll) behavior.
Deque: Double-Ended Queue
A Deque (Double-Ended Queue) allows insertions and removals at both ends. Java's Deque interface is implemented by LinkedList and ArrayDeque.
import java.util.Deque;
import java.util.ArrayDeque;
Deque<String> deque = new ArrayDeque<>();
deque.addFirst("A"); // front
deque.addLast("B"); // back
deque.addFirst("Z"); // new front
System.out.println(deque); // [Z, A, B]ArrayDeque vs LinkedList as Deque
ArrayDeque is generally preferred over LinkedList as a Deque:
- No per-element node overhead
- Better cache locality
- Slightly faster for stack/queue operations
Only choose LinkedList when you also need the List interface.
All lessons in this course
- LinkedList Internals
- Deque Operations: Stack and Queue
- LinkedList vs ArrayList Trade-offs
- PriorityQueue for Ordered Processing