본문 바로가기

Java & Spring

[JAVA] - 스택(Stack)

스택 (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