Chapter01/Java

[Java] Stack / Queue 사용예시

EmmaDev_v 2025. 3. 7. 11:10

코테하다보니 종종 등장해서 적어봄

 

 

LIFO (last in first out) 특성 이용할 때 사용하는 Stack

 

 

주요 메서드

 

push(item) 스택에 요소 추가

pop() 스택 최상단 요소 제거 및 반환

peek() 스택 최상단 값 조회

isEmpty() 스택이 비어있는지 확인

size() 스택의 사이즈

search(Object o) 해당 요소가 스택에서 몇번째인지 반환. 없으면 -1

 

 

 

사용 예시 코드

 

import java.util.Stack;

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

        // 요소 추가
        stack.push(10);
        stack.push(20);
        stack.push(30);

        System.out.println(stack); 

        // 출력: [10, 20, 30]

        // 최상단 요소 조회 (제거X)
        System.out.println(stack.peek()); 

        // 출력: 30

        // 요소 제거
        System.out.println(stack.pop()); 

        // 출력: 30
        System.out.println(stack); 

        // 출력: [10, 20]

        // 스택이 비었는지 확인
        System.out.println(stack.isEmpty()); 

        // 출력: false

        // 스택 크기 확인
        System.out.println(stack.size()); 

       // 출력: 2
    }
}

 

 

 

FIFO(first in first out) 특성 이용할 때 사용하는 Queue

 

주요 메서드

 

opper(item) 큐에 요소 추가. 성공시 true 반환

poll() 큐 맨 앞 요소 제거 및 반환. 비어있으면 null 반환

peek() 큐 맨 앞 값 조회. 비어있으면 null 반환

isEmpty() 큐가 비어있는지 확인

size() 스택의 사이즈

 

 

사용 예시 코드

 

import java.util.LinkedList;

import java.util.Queue;

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

        // 요소 추가
        stack.offer(10);
        stack.offer(20);
        stack.offer(30);

        System.out.println(queue); 

        // 출력: [10, 20, 30]

        // 맨 앞 요소 조회 (제거X)
        System.out.println(queue.peek()); 

        // 출력: 10

        // 요소 제거
        System.out.println(stack.poll()); 

        // 출력: 10
        System.out.println(queue); 

        // 출력: [20, 30]

        // 스택이 비었는지 확인
        System.out.println(queue.isEmpty()); 

        // 출력: false

        // 스택 크기 확인
        System.out.println(queue.size()); 

       // 출력: 2
    }
}

 

반응형