JAVA/포스팅

자바 컬렉션 프레임워크 Queue

짜집퍼박사(짜박) 2023. 11. 18. 00:45

Queue 인터페이스는 자바 컬렉션 프레임워크에서 큐(큐는 선입선출, FIFO 구조를 가진 자료구조)를 구현하기 위한 인터페이스입니다. Queue는 Collection 인터페이스를 상속하며, 큐의 기본 동작과 관련된 메서드를 정의하고 있습니다.

 

주요 메서드 및 특징

 

1. 요소 추가 및 제거

- add(e) 또는 offer(e): 큐에 요소를 추가합니다.
- remove() 또는 poll(): 큐에서 요소를 제거하고 반환합니다.

 

2. 요소 접근

element() 또는 peek(): 큐의 맨 앞에 있는 요소를 반환하지만 제거하지 않습니다.

 

3. 기타 메서드

- size(): 큐에 포함된 요소의 개수를 반환합니다.
- isEmpty(): 큐가 비어있는지 여부를 확인합니다.
- clear(): 큐의 모든 요소를 제거합니다.

 

 

구현 클래스

자바에서는 Queue 인터페이스를 구현한 여러 클래스가 제공됩니다. 그 중에서 대표적인 것은 다음과 같습니다.

 

1. LinkedList

일반적인 큐의 구현체로 사용됩니다. LinkedList 클래스는 Queue 인터페이스를 구현하고 있어 큐로 사용할 수 있습니다.

Queue<String> queue = new LinkedList<>();

2. PriorityQueue

우선순위 큐를 구현한 클래스로, 각 요소는 우선순위에 따라 정렬됩니다.

Queue<Integer> priorityQueue = new PriorityQueue<>();

 

 

사용 예제

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

public class QueueExample {
    public static void main(String[] args) {
        Queue<String> queue = new LinkedList<>();

        // 요소 추가
        queue.add("Apple");
        queue.offer("Banana");
        queue.add("Orange");

        // 요소 확인
        System.out.println("Front element: " + queue.element());

        // 요소 제거
        String removedElement = queue.remove();
        System.out.println("Removed element: " + removedElement);

        // 큐 순회
        System.out.println("Queue elements:");
        for (String element : queue) {
            System.out.println(element);
        }
    }
}

위의 예제에서 LinkedList를 사용하여 Queue를 구현하고, add, element, remove 메서드를 사용하여 큐의 기본 동작을 수행하였습니다. 실제로 큐를 활용할 때에는 사용 목적과 상황에 맞게 LinkedList나 PriorityQueue 등을 선택하여 활용하면 됩니다.

 

With ChatGPT