Queue❓
- Queue는
선입선출(First-In-First-Out; LIFO)의 대표적인 선형 자료구조 중의 하나
- 선입선출이란
First-In-First-Out 이라는 뜻 그대로 가장 먼저 들어온 데이터가 가장 먼저 나간다 의 의미
- 프로그래밍에서
데이터가 입력된 순서대로 처리될 때 사용
Queue의 특징
- 먼저 들어간 자료가 먼저 나오는 구조
FIFO(First In FIrst Out) 구조
- 큐는 한 쪽 끝은
프런트(front)로 정하여 삭제 연산만 수행함
- 다른 한 쪽 끝은
리어(rear)로 정하여 삽입 연산만 수행함
- 그래프의
넓이 우선 탐색(BFS)에서 사용
- 컴퓨터 버퍼에서 주로 사용, 여러 개의 입력이 있으나 처리를 하지 못할 때, 버퍼(큐)를 만들어 대기 시킴

Queue 사용법
Queue 선언
import java.util.Queue;
import java.util.LinkedList;
Queue<Integer> queue = new LinkedList<>();
Queue 값 추가
Queue<Integer> queue = new LinkedList<>();
queue.add(1);
queue.add(2);
queue.offer(3);
queue.offer(4);
- add(value): 삽입 성공 시 true 반환, 사용 가능한 공간이 없어 삽입 실패 시 IllegalStateException 발생
- offer(value): 삽입 성공 시 true 반환, 사용 가능한 공간이 없어 삽입 실패 시 false 반환
Queue 값 삭제
Queue<Integer> queue = new LinkedList<>();
Queue.remove();
Queue.poll();
- remove(): 큐의 헤드를 조회하고 제거, 큐가 비어있다면 예외 발생
- poll(): 큐의 헤드를 조회하고 제거, 큐가 비어있다면 null 반환
Queue 가장 먼저 들어간 값 출력
Queue<Integer> queue = new LinkedList<>();
Queue.peek();
Queue 기타 메서드
Queue<Integer> queue = new LinkedList<>();
queue.size();
queue.isEmpty();
queue.contains(1);
queue.clear();