728x90
Queue란?
줄서기와 같이 처음 선 사람이 처음 통과하는 것처럼, 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조로 FIFO(First-In-Fisrt-Out)의 형태이다.
Enqueue(인큐) : 큐에 데이터를 넣는 기능
Dequeue(디큐) : 큐에서 데이터를 꺼내는 기능
JAVA Queue
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 반환
참고 및 출처)
728x90
반응형