[JAVA / 자바] Stack(스택) 클래스 사용법 및 함수(Method) 정리
Stack
: 후입 선출(LIFO: Last In First Out)의 성격을 지닌 자료구조이다.
[자료구조] 스택 (Stack)에 대한 설명글
선언
import java.util.Stack;
Stack<자료형> 변수명 = new Stack<>();
ㄴ 위 같은 경우는 자료형에 넣은 자료형만 삽입, 삭제 가능
Stack 변수명 = new Stack();
ㄴ 위 같은 경우는 어떤 자료형이든 삽입, 삭제 가능(이전에 int형을 넣었어도 String형 삽입 가능)
메서드 (Method)
Stack<자료형> stack = new Stack<>();
1. 삽입
stack.push(삽입할 value);
ㄴ 반환 값(삽입한 value의 자료형): 삽입한 value
stack.add(삽입할 value);
ㄴ 반환 값(boolean): true(성공) / false(실패; StackOverflow)
2. 삭제
stack.pop();
ㄴ 반환 값(삭제한 value의 자료형): 삭제한 value / 공백 스택일 때 Exception("EmptyStackException") 발생
stack.remove(index);
ㄴ 반환 값(삭제한 value의 자료형): 삭제한 value / 옳지 않은 index입력 시 Exception("ArrayIndexOutOfBoundsException") 발생
*(index는 삽입된 순서대로 0 ~ stack.size()-1)
3. 스택의 top에 있는 원소 반환
stack.peek();
ㄴ 반환 값(top에 저장된 value 자료형): stack의 top에 저장된 값
4. 크기
stack.size();
ㄴ 반환 값(int): 현재 스택에 저장된 value의 개수
5. 스택이 비어있는가?
stack.isEmpty();
stack.empty();
ㄴ 반환 값(boolean): 공백상태 true / 공백상태가 아닐 때 false
6. 스택 안에 해당 원소가 있는가?
stack.search(찾을 value);
ㄴ 반환 값(int): top에서부터 몇 번째에 존재하는지? (1 ~ stack.size()) / 존재하지 않으면 -1
7. 스택 값 변경
stack.set(index, 변경할 value);
ㄴ 반환 값(변경 전 value의 자료형): 변경 전 value / 옳지 않은 index 입력 시 Exception("ArrayIndexOutOfBoundsException") 발생
*(index는 삽입된 순서대로 0 ~ stack.size()-1)
8. 해당 인덱스에 존재하는 값 반환
stack.elementAt(index);
ㄴ 반환 값(int): 해당 인덱스에 저장된 값 / 옳지 않은 index 입력 시 Exception("ArrayIndexOutOfBoundsException") 발생
*(index는 삽입된 순서대로 0 ~ stack.size()-1)
9. 스택 초기화(= 공백 스택 만들기)
stack.clear();
ㄴ 반환 값(void): X