열심히 살아나갈 사람

Java에서 큐(Queue)는 주로 java.util 패키지에 있는 Queue 인터페이스를 통해 사용합니다. 큐는 'First In, First Out'(FIFO)의 특성을 가진 자료구조로, 가장 먼저 들어온 요소가 가장 먼저 나가는 구조를 가지고 있습니다.

Queue 인터페이스의 주요 메소드들:

  • boolean add(E e): 큐의 끝에 주어진 요소를 추가합니다. 큐의 용량이 꽉 찬 경우에는 IllegalStateException을 발생시킵니다.
  • boolean offer(E e): 큐의 끝에 주어진 요소를 추가합니다. 큐의 용량이 꽉 찬 경우에는 false를 반환합니다.
    E remove(): 큐의 맨 앞에 있는 요소를 제거하고, 그 요소를 반환합니다. 큐가 비어있는 경우 NoSuchElementException을 발생시킵니다.
  • E poll(): 큐의 맨 앞에 있는 요소를 제거하고, 그 요소를 반환합니다. 큐가 비어있는 경우 null을 반환합니다.
  • E element(): 큐의 맨 앞에 있는 요소를 반환합니다. 큐가 비어있는 경우 NoSuchElementException을 발생시킵니다.
  • E peek(): 큐의 맨 앞에 있는 요소를 반환합니다. 큐가 비어있는 경우 null을 반환합니다.

다음은 Java에서의 Queue를 생성하고 사용하는 기본적인 예시입니다:

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

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

        // 요소 추가
        queue.add(1);
        queue.add(2);
        queue.add(3);
        System.out.println(queue);  // 출력: [1, 2, 3]

        // 요소 제거
        int removed = queue.remove();
        System.out.println(removed);  // 출력: 1
        System.out.println(queue);  // 출력: [2, 3]

        // 요소 확인
        int peeked = queue.peek();
        System.out.println(peeked);  // 출력: 2
        System.out.println(queue);  // 출력: [2, 3]
    }
}

이 예제에서는 Queue 인터페이스의 주요 메소드들을 사용하여 큐에 요소를 추가하거나 제거하고, 특정 요소를 확인하는 방법을 보여주고 있습니다.

큐는 다양한 알고리즘에서 활용됩니다. 예를 들어, 너비 우선 탐색(BFS), 캐시 구현, 작업 스케줄링 등에서 큐를 사용할 수 있습니다. 또한, 실제 시스템에서는 메시지 큐, 이벤트 처리, 프린터의 출력 대기열 등의 구현에도 사용됩니다.

profile

열심히 살아나갈 사람

@쿼리_

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!