컴퓨터 언어/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
스택이 차 있습니다.