새소식

언어/자바(JAVA)

[자바(Java)] 자료구조 스택(Stack ) 사용방법

  • -

안녕하세요 호호만두에요

이번에는 자바에서 스택(stack)을 사용하는 방법에 대해서 알아볼게요!!

저는 처음에 자바에 스택이 따로 없는 줄 알았는데 c++과 같이 기본으로 제공되더라구요

그래서 알고리즘문제 풀때마다 arraylist만 사용하거나

스택이 필요할때면 아 이걸 다 구현해야 되나... 싶었는데

머리가 나쁘면 몸이 고생 ㅠㅠㅠ

 

아무튼 !! 자바의 스택 사용 방법에 대해 알아봅시다!!

 

stack class는 java.util에 있어요

import java.util.Stack;

위 처럼 import 문을 달아주면 stack을 자바에서 사용하실 수 있어요

 

자바에서 stack 변수 선언은 다음과 같이 합니다

저는 Integer 값을 담는 stack을 만들었어요

<>안에 다른 타입을 써서 만들 수도 있답니다

자기가 만든 class도 물론 가능해요

Stack<Integer> stack = new Stack<>();   // stack 선언

 

stack은 기본적으로 FILO(First In Last Out)이죠??

그러면 값을 어떻게 넣느냐??

stack에는 push메소드를 이용해 값을 넣어줍니다

stack.push(1);  // stack에 1 넣기
stack.push(2);  // stack에 2 넣기

 

이렇게하면 stack에 1과 2가 차례로 들어가게되요

그러면 아래 처럼 들어가 있겠죠??

2
1

 

이제 값을 꺼내봅시다.

stack에서 값을 꺼내는 메소드는 pop()에요

아래 명령을 통해서 맨 위에 있는 값인 '2'가 꺼내져서 num 변수에 담겨요

int num = stack.pop();  // stack의 맨 위의 값 꺼내기

 

이제 stack은 다음과 같이 변했어요

이제 stack에는 1 밖에 남아있지 않아요

1



그런데 값을 꺼내지 않고 맨 위의 값만 확인하고 싶다면 어떻게 할까요??

stack의 top의 값을 확인하고 싶다면 peek() 메소드를 이용하면 되요

이렇게 하면 top_num에 1이라는 값이 담기게 됩니다!!

int top_num = stack.peek(); // 값을 꺼내지 않고 stack의 맨 위의 값 확인

 

하지만 아까와 다르게 stack의 값은 그대로 남아있답니다!!

 

stack을 사용함에 있어서 이 3개 메소드 정도면 충분하답니다

자바 stack 직접 구현하지 않고 사용해보세요!!

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.