All Honey Tip

[JAVA] 2. Stack 설명 및 예시

Stack 설명


Stack이란?

다운로드 4

저번 시간에서는 선입선출(FIFO)인 Queue에 대해 알아봤습니다. 이번 포스팅에서는 Stack에 대해 알아보도록 하겠습니다.

자바에서 스택(Stack)은 데이터를 일렬로 나열하여 관리하는 자료 구조 중 하나로, “후입선출” (Last-In-First-Out, LIFO) 원칙을 따릅니다. 쉽게 말해, 스택에 쌓인 데이터들 중 가장 최근에 들어온 데이터가 가장 먼저 빠져나가는 형식입니다.

그럼 자바에서 스택(Stack)을 어떻게 사용하는지 알아보겠습니다.




Stack 사용법

자바에서 Stack을 선언하려면 java.util 패키지로부터 stack을 import를 한 뒤 Stack<Element> stack = new Stack<>() 의 형식으로 선언해주시면 됩니다.

import java.util.Stack;

Stack<Integer> stack = new Stack<>();
Stack<String> stack = new Stack<>();




Stack 주요 함수

일부 주요한 Stack 메서드들은 다음과 같습니다:

  • push(E e): 스택의 맨 위에 요소를 추가합니다.

  • pop(): 스택의 맨 위에서 요소를 제거하고 반환합니다.

  • peek(): 스택의 맨 위의 요소를 반환하지만 제거하지는 않습니다.

  • isEmpty(): 스택이 비어있는지 여부를 확인합니다.

  • size(): 스택에 저장된 요소의 개수를 반환합니다.


예시

import java.util.Stack;

public class StackExample {
    public static void main(String[] args) {
    Stack stack = new Stack<>();    

    // 요소 추가
    stack.push("Apple");
    stack.push("Banana");

    System.out.println("Stack: " + stack);

    // 요소 제거
    String poppedItem = stack.pop();
    System.out.println("Popped from Stack: " + poppedItem);

    // 맨 위 요소 확인
    String peekedItem = stack.peek();
    System.out.println("Peeked Item: " + peekedItem);

    // 루프를 사용한 요소 처리
    while (!stack.isEmpty()) {
        String item = stack.pop();
        System.out.println("Processed Item: " + item);
    }

    System.out.println("Final Stack: " + stack);
  }
}

위 예시와 같이, push를 통해 스택에 요소를 넣어주고, pop을 통해 맨 마지막 요소를 제거하며 해당 요소를 반환합니다. 마지막으로 peek을 통해 스택의 맨 위 요소(제거하지 않음)를 확인할 수 있습니다.


마치며

지금까지 Stack에 대한 간단한 설명 및 예시를 살펴보았습니다. 아래 첨부된 링크는 Stack 관련 면접 질문이니 참고하시길 바라며, 다음 시간에도 JAVA 프로그래밍에서 자주 쓰이는 유용한 정보를 가져오도록 하겠습니다.

image 58
바로 가기


코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다