[java] 자바 큐 인터페이스의 스택 구현 방법

자바에서 큐(Queue) 인터페이스를 사용하여 스택(Stack)을 구현하는 방법에 대해 알아보겠습니다.

자바에서의 큐와 스택

큐는 선입선출(FIFO, First-In-First-Out) 방식으로 요소를 관리하는 자료 구조이고, 스택은 후입선출(LIFO, Last-In-First-Out) 방식으로 요소를 관리하는 자료 구조입니다.

자바에서의 큐 인터페이스

자바에서는 java.util.Queue 인터페이스를 활용하여 큐를 다룹니다. 이 인터페이스는 add(), offer(), remove(), poll(), element(), peek() 등의 메서드를 제공합니다.

큐를 사용하여 스택 구현하기

자바에서는 java.util.LinkedList 클래스를 사용하여 큐를 구현할 수 있습니다.

아래는 큐를 사용하여 스택을 구현하는 예제 코드입니다.

import java.util.LinkedList;
import java.util.Queue;

public class StackUsingQueue {
    private Queue<Integer> queue = new LinkedList<>();

    public void push(int value) {
        queue.add(value);
        int size = queue.size();
        while (size > 1) {
            queue.add(queue.remove());
            size--;
        }
    }

    public int pop() {
        return queue.remove();
    }

    public int peek() {
        return queue.peek();
    }

    public boolean isEmpty() {
        return queue.isEmpty();
    }
}

위의 예제 코드는 큐를 사용하여 스택을 구현한 것으로, push() 메서드로 요소를 스택에 추가하고, pop() 메서드로 요소를 꺼내올 수 있습니다.

요약

이렇게 자바에서는 java.util.Queue 인터페이스와 java.util.LinkedList 클래스를 활용하여 큐를 사용하여 스택을 구현할 수 있습니다. 이를 통해 다양한 상황에 맞는 자료 구조를 유연하게 활용할 수 있습니다.

더 많은 정보를 원하시면 Java Queue InterfaceJava LinkedList Class를 참고하세요.