✔ FIFO 구조 (First In First Out)
✔ front는 삭제 연산 수행
✔ rear는 삽입 연산 수행
✔ 그래프의 너비 우선 탐색 (Breadth First Search: BFS)에 사용
탐색을 시작하는 정점을 Queue 에 넣는다.(enqueue) 그리고 dequeue 를 하면서 dequeue 하는 정점과 간선으로 연결되어 있는 정점들을 enqueue 한다.
(참고 : 깊이 우선 탐색 (Depth First Search: DFS)에는 자료구조로 Stack을 사용한다.)
✔ 컴퓨터 버퍼에서 주로 사용
import java.util.LinkedList;
import java.util.Queue;
Queue<Integer> queue = new LinkedList<>();
Queue<String> queue = new LinkedList<>();
LinkedList를 활용하여 생성
Queue<Integer> queue = new LinkedList<>();
queue.offer(1); //값 추가 실패시 false 리턴
queue.add(2); //값 추가 실패시 예외를 발생시킨다
queue.offer(3);
queue.add(4);
System.out.println(queue);
-----출력결과-----
[1, 2, 3, 4]
int removed = queue.poll();
System.out.println(removed);
System.out.println(queue);
queue.clear();
System.out.println(queue);
-----출력결과-----
1
[2, 3, 4]
[]
queue.offer(5);
queue.offer(6);
queue.offer(7);
queue.offer(8);
System.out.println(queue.peek());
-----출력결과-----
5
enqueue : 성공시 true 리턴
dequeue : 성공시 제거한 값 리턴
peek : 성공시 확인한 값 리턴
그 외