Language/Java
Queue❓
m5n
2024. 5. 21. 22:50
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에 1추가
queue.add(2); // queue에 2추가
queue.offer(3); // queue에 3추가
queue.offer(4); // queue에 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의 크기 출력
queue.isEmpty(); // queue가 비어있는지 확인 (비어있다면 true를 반환)
queue.contains(1); // queue에 1이 있는지 확인 (있다면 true를 반환)
queue.clear(); // queue에 들어있는 모든 값 초기화