본문 바로가기
자료구조

[Java] 큐 Queue

by 서피 2021. 2. 20.

자바 Queue의 특징

먼저 들어간 변수가 먼저 나오는 선입선출 (First in First out) 형태이다.

변수를 집어넣은 순서대로만 꺼낼 수 있으며, Queue의 한가운데에 있는 변수만 꺼내는 것은 불가능하다.

 


 

주요 메소드

boolean add(E e)

- Queue에 원소를 추가한다. 성공적으로 추가하면 true를 반환하고, 공간 부족으로 인해 실패하면 IllegalStateException 이 발생한다.

 

boolean offer(E e)

- Queue에 원소를 추가한다. 성공적으로 추가하면 true를 반환하고 실패하면 false를 반환한다.

 

E remove()

- Queue의 가장 먼저 들어간 원소를 제거하며, 그 원소를 return한다. Queue가 비어있으면 NoSuchElementException이 발생한다.

 

E poll()

- Queue의 가장 먼저 들어간 원소를 제거하며, 그 원소를 return한다. Queue가 비어있으면 null을 반환한다.

 

E element()

- Queue의 가장 먼저 들어간 원소를 반환하지만 제거하지 않는다. Queue가 비어있으면 NoSuchElementException이 발생한다.

 

E peek()

- Queue의 가장 먼저 들어간 원소를 반환하지만 제거하지 않는다. Queue가 비어있으면 null을 반환한다.

 

  Exception이 발생하는 메소드 Exception이외의 값을 return하는 메소드
추가 add() offer()
제거 remove() poll()
확인 element() peek()

 


 

 

Queue 변수의 생성

import java.util.Queue;
import java.util.LinkedList;

Queue <Integer> queue = new LinkedList<>();

Queue를 사용하기 위해서는 Queue와 LinkedList 두 가지 모두를 import 해야한다.

 

 

 

 

Queue에 변수 추가하기

queue.add(1);
queue.add(2);
queue.add(3);

queue에 순서대로 1, 2, 3을 추가한다.

 

 

 

 

Queue의 변수 꺼내기

queue.remove(); // 가장 먼저 들어간 1 이 제거된다.
queue.remove(); // 다음 들어간 2 가 제거된다.
queue.remove(); // 마지막으로 들어간 3이 제거된다.

// queue는 현재 비어있는 상태.

queue.peek(); // queue의 첫 번째 원소를 확인하지만, queue가 비어있으므로 null이 return된다.
queue.element(); // queue의 첫 번째 원소를 확인하지만, queue가 비어있으므로 NoSuchElementException이 발생한다.

'자료구조' 카테고리의 다른 글

[Java] 벡터 Vector  (0) 2021.05.30
[Java] PriorityQueue와 Queue의 차이  (0) 2021.04.16
정규표현식 주요 표현 정리  (0) 2021.02.26
[Java] 해쉬맵 HashMap  (0) 2021.02.16

댓글