📌 큐 (Queue)의 개념
- Queue의 사전적인 의미는 대기줄을 의미한다. 이처럼 줄을 지어 순서대로 처리되는 것이 Queue이다.
- Queue는 Stack 과는 반대로 First In First Out의 FIFO 즉, 선입선출 구조를 가진다.
- Queue는 LinkedList를 활용하여 생성해야 합니다. 그렇기에 Queue와 LinkedList가 다 import 되어 있어야 사용이 가능합니다.
- Queue는 가장 첫 번째 원소를 fornt라고 하고 끝에 있는 원소를 rear라고 한다.
- 데이터를 넣을 때는 EnQueue, 데이터를 꺼낼 때는 DeQueue라고 한다.
📌 큐(Queue) 사용법
// 선언 방식
Queue<Integer> queue = new LinkedList<>();
// 값 추가
queue.add(1);
queue.offer(2);
// 값 삭제
queue.poll();
queue.remove();
queue.clear();
💡 Tip
Queue에 데이터 추가, 삭제, 검색할 때 제공되는 메서드가 비슷한 것들이 있다.
서로 차이점은 기능적으로 차이는 없으나 null을 반환할지, 예외를 발생시키냐의 차이가 있다.
add : 큐가 꽉 찬 경우 IllegalStateException 에러 발생
offer : boolean 반환
remove : 큐가 비어 있는 경우 NoSuchElementException 에러 발생
poll : 큐가 비어있을 경우 null 반환
poll : 큐가 비어있을 경우 null 반환
peek : null 반환
'DataStructure' 카테고리의 다른 글
[Java] 링크드리스트 (LinkedList) 자료구조 (0) | 2023.05.12 |
---|---|
[Java] 해시맵 (HashMap) 자료구조 (0) | 2023.05.11 |
[Java] 해시(Hash) & 해시 테이블(Hash Table) (0) | 2023.05.11 |
[Java] 덱 / 디큐 (Deque) 자료구조 (0) | 2023.05.10 |
[Java] 스택 (Stack) 자료구조 (0) | 2023.05.08 |