Collections 초급

Stack에서 Deque와 ArrayDeque로

레거시 Stack 클래스 대신 ArrayDeque를 구현체로 사용하는 Deque 인터페이스를 사용합니다.

✕ 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();
이 코드에 문제가 있나요? 알려주세요.
🎯

더 나은 추상화

Deque는 스택과 큐 연산을 모두 명시적으로 모델링합니다.

⚡

더 낮은 오버헤드

ArrayDeque는 Vector의 레거시 동기화를 피합니다.

🧩

더 높은 유연성

동일한 인터페이스가 LIFO와 FIFO 알고리즘을 모두 지원합니다.

이전 방식
Stack
모던 방식
ArrayDeque를 사용하는 Deque
JDK 버전
6
난이도
초급
Stack에서 Deque와 ArrayDeque로
사용 가능

JDK 6 (2006년 12월) 이후 사용 가능

Stack은 레거시 동기화 클래스인 Vector를 확장합니다. Deque는 스택 연산을 직접 모델링하며, ArrayDeque는 메모리 내 LIFO 작업에 권장되는 범용 구현체입니다.