스택 (Stack)
마지막에 들어온 데이터가 가장 먼저 나가는 구조로 후입선출(Last In First Out : LIFO) 자료구조라 불린다.
이 특성으로 인해 데이터가 입력된 역순으로 계산이 필요한 경우 사용된다. (수식 계산, 인터럽트 처리, 함수 콜 스택 등)
쉽게 이해하려면 상자 안에 물건을 하나씩 넣거나 빼는 경우를 생각하면 될 것 같다.
스택 공간 : 데이터가 존재할 수 있는 공간
Bottom : 스택에 처음으로 삽입된 데이터
Top : 스택에 마지막으로 삽입된 데이터
스택 (Stack) 사용법 및 주요 메서드
import java.util.Stack; // Stack 클래스 import
Stack<Integer> stack = new Stack<Integer>(); // Stack 선언
위와같이 Stack 클래스를 import 해준 뒤에, Stack을 선언하여 사용할 수 있다.
① push()
스택에 데이터를 삽입해준다.
stack.push(1);
stack.push(3);
② pop()
스택에 데이터를 삭제한다.
후입선출 구조로 인해 가장 마지막에 삽입되는 데이터를 삭제한다.
stack.pop(); // 스택 맨 끝에 존재하는 데이터 삭제
③ size()
스택에 크기를 구하는 메서드로 데이터의 개수를 의미한다.
stack.size(); // 스택에 존재하는 데이터 개수 체크
④ peek()
스택의 가장 맨 끝에 있는 데이터를 참조한다.
stack.peek(); // 스택의 맨 끝에 있는 데이터 확인
⑤ contains()
스택에 특정 데이터가 존재하는지 확인한다.
찾으려는 데이터가 존재하면 true, 존재하지 않으면 false를 리턴한다.
System.out.println(stack.contains(1)); // 스택에 1이 있는지 체크
⑥ stack.empty()
스택이 비어있는지 확인한다.
스택에 데이터가 존재하지 않으면 true, 존재하면 false를 리턴한다.
stack.empty(); // 스택이 비어있는지 체크
'Java & Spring' 카테고리의 다른 글
[JAVA] - 데크 (Deque) (0) | 2023.04.12 |
---|---|
[JAVA] - 큐 (Queue) (0) | 2023.04.11 |
[JAVA] - 문자열 String 타입 (0) | 2023.04.09 |
[JAVA] - JAVA의 구조 및 동작 원리 (0) | 2023.04.09 |
[JAVA] - StringBuilder (0) | 2023.01.29 |