[java] 자바 큐 인터페이스의 분류

자바에서는 큐를 다루기 위한 여러 인터페이스를 제공합니다. 이러한 인터페이스들은 큐의 동작 방식에 따라 나뉘며, 다양한 상황에 맞는 큐를 구현할 수 있도록 도와줍니다.

1. Queue 인터페이스

Queue 인터페이스는 선입선출(FIFO, First-In-First-Out) 방식을 따르는 큐를 다루기 위한 메서드들을 정의합니다.

public interface Queue<E> extends Collection<E> {
    boolean add(E e);
    E remove();
    E element();
    // ...
}

Queue 인터페이스의 구현체로는 PriorityQueue 등이 있습니다.

2. Deque 인터페이스

Deque 인터페이스는 양쪽 끝에서 삽입, 삭제가 가능한 큐를 다루기 위한 메서드들을 정의합니다.

public interface Deque<E> extends Queue<E> {
    void addFirst(E e);
    void addLast(E e);
    E removeFirst();
    E removeLast();
    // ...
}

Deque 인터페이스를 구현한 클래스로는 ArrayDeque 등이 있습니다.

결론

자바는 다양한 큐를 다루기 위한 인터페이스를 제공하여 프로그래머가 필요에 맞게 큐를 구현하고 활용할 수 있도록 도와줍니다. 큐의 특성에 따라 Queue 또는 Deque 인터페이스를 선택하여 사용하면 됩니다.