728x90
이번에는 자바에서 스택을 사용해보자.
이전에 스택이 무엇인가에 대하여 공부했다.
https://superohinsung.tistory.com/177
JAVA Stack 클래스
java.util 패키지에서 Stack 클래스 제공
메서드 소개
- push(item) : item을 Stack에 추가한다.
- pop() : Stack 에서 마지막에 넣은 아이템을 리턴하고, 해당 아이템은 Stack에서 삭제한다.
- peek() : 스택의 맨 위의 요소를 반환하지만 제거하지는 않는다.
- empty() : 스택이 비어있는지 여부를 확인한다. 비어있으면 true, 그렇지 않으면 false를 반환한다.
- search(Object o) : 스택에서 특정 요소의 위치를 찾고, 해당 요소가 스택의 맨 위에엇부터 얼마나 떨어져 있는지를 반환한다. 찾지 못하면 - 1을 반환한다.
Stack 클래스는 Vector 클래스를 상속하므로, Vector 클래스에서 제공하는 모든 메서드들도 사용할 수 있다. 하지만 스택을 구현하기 위해서는 주로 위에서 설명한 메서드들을 사용한다.
이외에도 Java8부터는 더욱 많은 자료구조를 활용할 수 있는 Deque 인터페이스와 그 구현체인 ArrayDeque 클래스를 사용할 수 있다.
ArrayDeque 역시 스택과 큐 모두에서 사용할 수 있다. 스택을 사용하려면 ArrayDeque를 push() 와 pop() 메서드를 사용하여 스택처럼 활용 할 수 있다.
// java.util.Stack 클래스 임포트
import java.util.Stack;
// 자료형 매개변수를 넣어서, 스택에 들어갈 데이터의 타입을 지정해야 함
Stack<Integer> stack_int = new Stack<Integer>(); // Integer 형 스택 선언
stack_int.push(1); // Stack 에 1 추가
stack_int.push(2); // Stack 에 2 추가
stack_int.push(3); // Stack 에 3 추가 (출력에 나온 부분은 push() 성공시, 해당 아이템을 리턴해주기 때문임)
stack_int.pop(); // Stack 에서 데이터 추출 (마지막에 넣은 3이 출력)
stack_int.pop(); // Stack 에서 데이터 추출 (현재 Stack 에 있는 데이터 중, 가장 나중에 넣어진 데이터 출력 2이 출력)
stack_int.pop(); // Stack 에서 데이터 추출 (현재 Stack 에 있는 데이터 중, 가장 나중에 넣어진 데이터 출력 1이 출력)
728x90
'Computer Science > DataStructure' 카테고리의 다른 글
[DataStructure] 해쉬 테이블(HashTable)이란 feat. Java (0) | 2023.09.20 |
---|---|
[DataStructure] Java에서 큐(Queue) 사용하기. (0) | 2023.07.29 |
[DataStructure] 큐(Queue) feat. C, Java (0) | 2023.07.22 |
[DataStructure] 스택(Stack) feat. C, Java (0) | 2023.07.21 |
[DataStructure] 트리(Tree) (0) | 2023.07.19 |