[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 Interface와 Java LinkedList Class를 참고하세요.