컴퓨터 언어/JAVA

[JAVA] 스택(Stack) 클래스

테크케찰 2020. 7. 29. 19:08

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

 

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

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
스택이 차 있습니다.