공부 기록/Java
[Java] 큐(Queue)
yurison
2023. 5. 12. 14:13
큐(Queue)
- 선입선출(FIFO) : 가장 먼저 삽입된 요소가 가장 먼저 삭제된다.
- 선입선출은 양방향(front, rear)에서 이뤄진다.
- 너비 우선 탐색(BFS)에서 자주 사용한다.
Queue 사용하기
- Queue 선언
Queue<Integer> queue = new LinkedList<>();
보통 LinkedList를 이용한다.
삽입 : queue.offer(x), queue.add(x)
queue.offer(1); // 삽입 실패 시 false 반환
queue.add(1); // 삽입 실패 시 IllegalStateException
rear에 값을 삽입한다.
삭제 : queue.poll(), queue.remove()
int a = queue.poll(); // 큐가 비어있다면 null 반환
int a = queue.remove(); // 큐가 비어있다면 NoSuchElementException
front의 값을 조회하고, 삭제한다.
조회 : queue.peek(), queue.element()
int a = queue.element(); // 큐가 비어있다면 null 반환
int a = queue.peek(); // 큐가 비어있다면 NoSuchElementException
front의 값을 조회한다.