[Java] 자바 Stack 클래스 사용 방법

반응형
반응형

자바 Stack 클래스 사용 방법

 

 

 

  Stack의 소개

 시험이나 책에서 단골 소재로 소개되는 Stack은 FILO(First In Last Out)로 외우면 끝이다.

 

Stack

먼저 들어온 상자가 제일 나중에 나가듯이 먼저 들어온 데이터가 가장 나중에 나가는 구조를 가진 원리이다.

 

import java.util.Stack;	//import 하기
Stack<String> stack = new Stack<>();	//String 형 Stack 선언

사용 방법은 Stack을 선언해서 사용하면 된다. 제네릭 부분에는 사용할 객체를 담으면 된다.

 

 

 

  Stack의 사용

Stack의 사용

stack.push(값);		//추가
stack.pop();		//삭제

 먼저 Stack에 대해 설명을 했듯이, 들어오는 것만 값을 입력하고, 삭제는 값을 입력하지 않는다.

제일 마지막에 들어온 값이 제일 먼저 나가기 때문이다.

 

이 점을 이용해서, 다음과 같이 활용한다면 누구나 쉽게 접근할 수 있을 것이다.

 

 

Stack 추가 - push

1, 13, 27 순서로 stack에 추가하였다.

stack에 1, 13, 27 순서로 등록되었다.

System.out.print로 출력할 때, stack에 순서대로 등록된 것을 확인할 수 있다.

 

Stack 삭제 - pop

pop를 선언하자 제일 마지막에 등록된 27이 삭제되었다.

pop를 추가하자, 27이 사라진 것을 확인 할 수 있다.

Stack의 구조대로 마지막 선언 값이 제일 먼저 사라진 것이다.

 

 

Stack 전체 삭제 - clear

stack의 값을 모두 지운다.

Stack의 값이 많을 경우, 한 번에 비우는 방법은 clear 함수를 이용하면 된다.

stack의 모든 값을 삭제 할 수가 있다.

 

 

Stack의 마지막 값 확인 - peek

Stack의 마지막 값 확인

Stack의 가장 마지막 값을 출력할 수 있다.

다른 말로는 pop 할 때, 삭제 대상이 무엇인지 확인할 수 있다.

 

 

이 외의 Stack 메서드들

stack.push(10);		//stack에 10 추가
stack.pop();		//stack의 마지막 push값 제거
stack.clear();		//stack의 전체 삭제
stack.peek();		//stack의 마지막 push값 확인
stack.size();		//stack의 배열 길이 수
stack.empty();		//stack이 비어있으면 true (있으면 false)
stack.contains(1);	//stack에 값(1)이 들어있으면 true (없으면 false)

 

 

  마무리

 프로그래머스 문제를 풀면서, Stack 함수에 대한 문제가 나왔길래 stack에 대해 공부하게 되었다.

반응형

댓글

Designed by JB FACTORY