본문 바로가기
컴퓨터 언어/JAVA

[JAVA] 스택(Stack) 클래스

by 테크케찰 2020. 7. 29.

며칠 전에 백준 알고리즘 문제를 풀면서 자바 스택 클래스에 대해서 알게 되었는데요, 오늘은 자바 스택 클래스에 대해서 간략히 알아보려 합니다.

 

자바 스택 클래스의 생성은 다음과 같이 할 수 있습니다.

Stack<Element> stack = new Stack<>();

자바 클래스에서 push, pop 등의 기본적인 메서드는 아래와 같이 구현되어있습니다.

public void push(Element data);//스택에 push(값 저장)
public Element pop();//스택에 pop(최근에 저장한 값 꺼내오기)
public Element peek();//최근에 저장한 값 참조(값이 스택에서 빠져나오지 않고, 참조만 함)
public boolean empty(); //스택에 비어있는지 참조
public int search(Element data); //data를 보관되어 있는 인덱스 반환(맨 위에 있는 요소가 1번)

여기서 Element는 자료형으로 Integer, Long, String 등의 값들이 들어갈 수 있으니 상황에 맞춰서 쓰시면 됩니다.

 

Stack 클래스를 이용하여 간단한 예시 코드를 작성해보겠습니다.

import java.util.*;
import java.io.*;

public class Main {
	public static void main(String args[]) throws Exception {
		Stack<Integer> stack=new Stack<>();
		if(stack.isEmpty()) System.out.println("스택이 비어있습니다.");
		else System.out.println("스택이 차 있습니다.");
		stack.push(1);
		stack.push(2);
		stack.push(3);
		System.out.println(stack.pop());
		stack.push(4);
		System.out.println(stack.peek());
		System.out.println("4의 위치: "+stack.search(4));
		if(stack.isEmpty()) System.out.println("스택이 비어있습니다.");
		else System.out.println("스택이 차 있습니다.");
	}
}
스택이 비어있습니다.
3
4
4의 위치: 2
스택이 차 있습니다.