Stack
- 값을 수직으로 쌓아놓고 넣었다가 빼서 조회하는 형식으로 데이터를 관리하는 배열
- LIFO(Last-In-First-out) : 나중에 들어간 것이 가장 먼저 나오는 성질
사용할 때
- 최근 저장된 데이터를 나열
- 데이터의 중복처리를 막고싶을때 사용
기능
- 선언 :
Stack<Integer> intStack 형태로 선언합니다.
- 생성 :
new Stack<Integer>() 형태로 생성합니다.
주요 기능
- 추가 :
push(추가할 값) 형태로 값을 추가
- 조회 :
peek() 형태로 맨 위값을 조회
- 꺼내기 :
pop() 형태로 맨 위값을 꺼냄 (꺼내고나면 삭제됨)
기타 기능
- 비었는지 확인 :
isEmpty() 형태로 배열이 비어있으면 true, 아니면 false 반환
예시
// Stack
// (사용하기 위해선 import java.util.Stack; 를 추가해야 함)
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Stack<Integer> intStack = new Stack<Integer>(); // 선언 및 생성
intStack.push(1);
intStack.push(2);
intStack.push(3);
while (!intStack.isEmpty()) { // 다 지워질때까지 출력
System.out.println(intStack.pop()); // 3,2,1 출력
}
// 다시 추가
intStack.push(1);
intStack.push(2);
intStack.push(3);
// peek()
System.out.println(intStack.peek()); // 3 출력
System.out.println(intStack.size()); // 3 출력 (peek() 할때 삭제 안됬음)
// pop()
System.out.println(intStack.pop()); // 3 출력
System.out.println(intStack.size()); // 2 출력 (pop() 할때 삭제 됬음)
System.out.println(intStack.pop()); // 2 출력
System.out.println(intStack.size()); // 1 출력 (pop() 할때 삭제 됬음)
while (!intStack.isEmpty()) { // 다 지워질때까지 출력
System.out.println(intStack.pop()); // 1 출력 (마지막 남은거 하나)
}
}
}