개요
- 선입선출 방식으로 작동하는 자료구조이다.
- 가장 먼저 들어온 데이터가 가장 먼저 나가는 FIFO 구조이다.
특징
- 기본 기능기능 설명
| enqueue(x) |
큐 뒤에 요소 삽입 |
| dequeue() |
큐 앞에서 요서 제거 및 반환 |
| peek() |
가장 앞에 있는 요소 조회 |
| isEmpty() |
큐가 비어 있는지 확인한다. |
| size() |
큐에 담긴 요소의 개수 |
사용법
- Queue는 인터페이스이며, LinkedList나 ArrayDeque로 구현해서 사용한다.
import java.util.LinkedList;
import java.util.Queue;
public class Example {
public static void main(String[] args) {
Queue<String> queue = new LinkedList<>();
queue.add("A");
queue.add("B");
queue.add("C");
System.out.println(queue.remove()); // A
System.out.println(queue.peek()); // B
}
}
사례
- 프린터 대기열: 인쇄 요청이 들어온 순서대로 처리
- 작업 스케줄링: CPU 작업 또는 쓰레드 처리 순서 유지
- 실시간 처리 시스템: 사용자 요청/이벤트가 순서대로 처리되도록 대기열로 관리
- 콜센터 전화 연결: 먼저 걸려온 전화를 먼저 연결
- 게임 접속: 사용자가 많을 경우 먼저 접속을 시도한 순서대로 접속
정리
- 먼저 들어온 것을 먼저 처리해야 하는 상황에서 사용하는 자료구조이다.