Java/Java 8 API

[자바] Queue 사용 방법 및 예제: java.util.Queue

ImYena 2021. 11. 4. 21:40
728x90

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에서 상속된 메소드

addAllclearcontainscontainsAllequalshashCodeisEmptyiteratorparallelStreamremoveremoveAllremoveIfretainAllsizespliteratorstreamtoArraytoArray

 

인터페이스 java.lang.Iterable에서 상속된 메소드

forEach

 

사용 방법 및 예제

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

728x90
반응형