Java - 큐(Queue)

HY SONG·2023년 3월 29일
0

Java

목록 보기
14/15

큐(Queue)란?

데이터를 저장하고 관리하는 선형 자료구조

큐의 특징

  • 선입선출(FIFO, First-In-First-Out)의 구조
  • 데이터는 하나씩만 넣고 뺄 수 있다
  • 두 개의 입출력 방향을 가지고 있다

큐의 장점

  1. 자료를 먼저 넣은 순서대로 데이터를 꺼내서 처리할 수 있다
  2. 자바에서는 큐를 기본 자료구조로 제공

큐의 단점

  • 큐 오버플로우가 발생할 수 있다
    큐는 한계가 있어서, 요소를 계속해서 푸시하면 큐 오버플로우(Queue Overflow) 오류가 발생할 수 있다
  • 메모리를 관리하는데 부담이 될 수 있다
    큐에 데이터를 저장하는 동안 메모리를 사용하게 되며, 큐 오버플로우를 방지하기 위해 충분한 메모리를 확보해야 한다

주요 메서드

  • add(element)
    요소를 큐에 추가하고, 큐가 꽉 차 있으면 예외를 던진다

  • poll()
    요소를 제거하고, 큐가 비어 있으면 null을 반환한다

  • peek()
    요소를 반환하고, 큐가 비어 있으면 null을 반환한다

  • isEmpty()
    큐가 비어 있는지 여부를 확인한다
    비어있으면 true를 반환하고, 그렇지 않으면 false를 반환한다

사용 예시

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

public class QueueExample {
    public static void main(String[] args) {
        Queue<String> queue = new LinkedList<>();
        
        // add
        queue.add("Alice");
        queue.add("Bob");
        queue.add("Charlie");
        
        // poll
        String frontElement = queue.poll(); // frontElement will be "Alice"
        System.out.println("Dequeued: " + frontElement);
        
        // peek
        String peekedElement = queue.peek(); // peekedElement will be "Bob"
        System.out.println("Peeked: " + peekedElement);
        
        // isEmpty
        boolean isEmpty = queue.isEmpty(); // isEmpty will be false
        System.out.println("Is empty: " + isEmpty);
    }
}

0개의 댓글