
Stack 클래스는 본 그림에서와 같이 Vector를 상속하며 마지막에 저장한 데이터를 가장 먼저 꺼내는 LIFO(Last In First Out)구조의 자료구조이다. 현대 자바 프로그래밍에서 Vector 클래스의 사용이 권장되지 않으므로 Vector를 상속받는 Stack 클래스의 사용 역시 권장되지 않는다.
그러므로 Stack 방식의 자료구조를 이용하고 싶다면 Deque를 구현한 ArrayDeque, LinkedList 클래스를 사용한다
Stack 클래스는 Vector를 상속하므로 Vector의 모든 메서드를 사용가능하다. 하지만 Vector의 메서드를 사용할 경우, Stack의 사용의도를 벗어나는 경우가 많아 Stack 전용의 메서드만 서술한다.
| 메서드 | 기능 |
|---|---|
| Stack() | 빈 새로운 Stack을 생성 |
| 메서드 | 기능 |
|---|---|
| Object puch(Object item) | Stack에 객체(item)를 저장 |
| 메서드 | 기능 |
|---|---|
| Object peek() | Stack의 맨 위에 있는 저장된 객체를 반환. pop()과 달리 Stack에서 객체를 꺼내지는 않음 비었을 때는 EmptyStackException 발생 |
| int search(Object o) | Stack에서 주어진 객체(o)를 찾아서 그 위치를 반환 못찾으면 -1을 반환 배열과 달리 위치는 0이 아닌 1부터 시작 |
| 메서드 | 기능 |
|---|---|
| Object pop() | Stack의 맨위에 저장된 객체를 꺼내서 반환 비었을 때는 EmptyStackException 발생 |
| 메서드 | 기능 |
|---|---|
| boolean empty() | Stack이 비어있는지 알려줌 |
자바의 정석 3판 (저자 : 남궁성)
Java Collections Framework Video Tutorial
오라클 Java 문서