Queue란?
줄서기와 같이 처음 선 사람이 처음 통과하는 것처럼, 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조로 FIFO(First-In-Fisrt-Out)의 형태이다.
Enqueue(인큐) : 큐에 데이터를 넣는 기능
Dequeue(디큐) : 큐에서 데이터를 꺼내는 기능
JAVA Queue
Queue (Java Platform SE 8 )
A collection designed for holding elements prior to processing. Besides basic Collection operations, queues provide additional insertion, extraction, and inspection operations. Each of these methods exists in two forms: one throws an exception if the opera
docs.oracle.com
import java.util.Queue
public interface Queue<E> extends Collection<E>
주요 메소드
기능 | Throws exception | Returns special value |
삽입(Insert) | add(e) | offer(e) |
삭제(Remove) | remove() | poll() |
헤드 조회(Head Examine) | element() | peek() |
- Returns special value는 용량이 제한된 대기열 구현과 함께 사용하도록 특별히 설계된 메소드
인터페이스 java.util.Collection에서 상속된 메소드
addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray
인터페이스 java.lang.Iterable에서 상속된 메소드
사용 방법 및 예제
Queue 선언
import java.util.Queue;
import java.util.LinkedList;
Queue<Integer> queue = new LinkedList<>();
- LinkedList를 이용하여 생성
Queue 삽입 : Enqueue
import java.util.Queue;
import java.util.LinkedList;
Queue<Integer> queue = new LinkedList<>();
queue.add(1);
queue.add(2);
queue.offer(3);
- add(e) : 삽입 성공 시 true 반환, 하지만 사용 가능한 공간이 없어 삽입 실패 시 IllegalStateException 발생
- offer(e) : 삽입 성공 시 true 반환, 하지만 사용 가능한 공간이 없어 삽입 실패 시 false 반환
Queue 삭제(Dequeue)
import java.util.Queue;
import java.util.LinkedList;
Queue<Integer> queue = new LinkedList<>();
queue.add(1);
queue.add(2);
queue.offer(3);
queue.poll();
queue.remove();
- remove() : 헤드 요소를 조회(출력 가능)하고 제거, 하지만 큐가 비어 있다면 예외 발생
- poll() : 헤드 요소를 조회(출력 가능)하고 제거, 하지만 큐가 비어 있다면 null 반환
Queue 헤드 조회
import java.util.Queue;
import java.util.LinkedList;
Queue<Integer> queue = new LinkedList<>();
queue.add(1);
queue.add(2);
queue.peek();
- element() : 헤드 요소 조회 및 반환, 하지만 큐가 비어 있다면 예외 발생
- peek() : 헤드 요소 조회 및 반환, 하지만 큐가 비어 있다면 null 반환
참고 및 출처)
[자료구조] 큐 Queue
큐(Queue) 구조 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조 예) 줄 서는 행위 FIFO(First-In, First-Out) 방식 또는 LILO(Last-In, Last-Out) 방식 기능 Enqueue(인큐) 큐에 데이터를 넣는 기능 De..
imyena.tistory.com
[Java] 자바 Queue 클래스 사용법 & 예제 총정리
Queue란? Queue의 사전적 의미는 무엇을 기다리는 사람, 차량 등의 줄 혹은 줄을 서서 기다리는 것을 의미하는데 이처럼 줄을 지어 순서대로 처리되는 것이 큐라는 자료구조입니다. 큐는 데이터를
coding-factory.tistory.com