
큐(Queue)는 먼저 들어온 데이터가 먼저 나가는 선입선출(FIFO, First In First Out)의 자료구조다.
삽입(Enqueue)과 꺼내기(Dequeue) - 각각 큐의 맨 뒤(rear)와 맨 앞(front)에서만 이루어진다. -> O(1)
탐색 - 배열, 스택과 마찬가지로 전체 원소를 하나하나 차례대로 조회한다. -> O(n)
import java.util.ArrayDeque;또는
import java.util.LinkedList;
| 메소드 | 타입 | 설명 |
|---|---|---|
offer(E e) | boolean | 큐의 맨 뒤(rear)에 원소를 삽입(add(E e)와 같음) |
poll() | E | 큐의 가장 앞(front)의 원소를 큐에서 삭제한 후 반환(removeFirst()와 같음) |
peek() | E | 큐의 가장 앞(front)의 원소를 삭제하지 않고 반환(getFirst()와 같음) |
contains(Object o) | boolean | 큐가 o를 원소로 가지고 있는 경우 true, 아닐 시 false 반환 |
isEmpty() | boolean | 큐가 비어있는 경우 true, 아닐 시 false 반환 |
ArrayDeque<Integer> queue = new ArrayDeque<>();
queue.offer(1);
queue.offer(3);
queue.offer(5);
queue.offer(7);
queue.offer(9);
System.out.println(queue); // [1, 3, 5, 7, 9]
System.out.println(queue.poll()); // 1
System.out.println(queue.poll()); // 3
System.out.println(queue.poll()); // 5
System.out.println(queue); // [7, 9]
System.out.println(queue.contains(7)); // true
System.out.println(queue.contains(5)); // false
System.out.println(queue.poll()); // 7
System.out.println(queue.poll()); // 9
System.out.println(queue); // []
퍼가요 ^^