https://www.geeksforgeeks.org/queue-data-structure/

Queue의 개념

https://www.geeksforgeeks.org/queue-interface-java/

Queue는 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out) 구조로 저장하는 형식을 말한다. 먼저 온 사람이 진료받는 병원 대기줄 과 같은 형태로, 나중에 집어 넣은 데이터가 먼저 나오는 LIFO 구조의 스택과 반대되는 개념이다.

Java에서 Queue는 java.util 패키지 내부에 존재하며 이의 하위 클래스/인터페이스로는 Deque(), PriorityQueue() 등이 있으며 Collection Interface의 확장으로 addAll(), clear(), contains() 등 Collection Interface 메소드 전부 사용 가능하다.

 

Queue 선언

Queue<T> queue = new LinkedList<>();
Queue<T> queue = new ArrayDeque<>();

위 사진에서 볼수있듯 Queue는 interface라 직접 초기화가 불가능하다. 대신에 이를 구현한 LinkedList 혹은 ArrayDeque로 초기화한다.

Queue의 함수

  Throws Exception Return Special Value
Insert add(e) offer(e)
Remove remove() poll()
Examine element() peek()

queue에는 데이터 추가, 삭제, 계산 총 6개의 메소드가 있다.

 

Queue 데이터 추가하기

queue.add(e);
queue.offer(e);
  1. boolean add(E e)
    •  큐 맨 뒤에 값 삽입
    •  삽입 성공 시 return true
    •  큐가 꽉 찬 경우 throws IllegalStateException
  2. boolean offer(e)
    •  큐 맨 뒤에 값 삽입
    •  삽입 성공 시 return true
    •  큐가 꽉 찬 경우 return false

Queue 데이터 삭제하기

queue.remove();
queue.poll();
  1. E remove()
    •  큐 맨 앞의 값 반환 후 삭제
    •  큐가 비어있을 경우 throws NoSuchElementException
  2. E poll()
    •  큐 맨 앞의 값 반환 후 삭
    •  큐가 비어있을 경우 return null

Queue 데이터 조회하기

queue.element();
queue.peek();
  1. E element()
    •  큐 맨 앞의 값 출력 (삭제 x)
    •  큐가 비어있을 경우 throws NoSuchElementException
  2. E peek()
    •  큐 맨 앞의 값 출력 (삭제 x)
    •  큐가 비어있을 경우 return null

요약

  • Queue는 먼저 들어온 데이터가 먼저 나가는 FIFO(First In First Out) 형태의 자료구조.
  • Queue를 선언하려면 이의 구현체인 LinkedList나 ArrayDeque를 사용.
  • 데이터 추가는 add(), offer()
  • 데이터 삭제는 remove(), poll()
  • 데이터 조회는 element(), peek()

출처

https://docs.oracle.com/javase%2F7%2Fdocs%2Fapi%2F%2F/java/util/Queue.html

 

Queue (Java Platform SE 7 )

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

https://cocoon1787.tistory.com/774

 

[JAVA] Queue(큐) 사용법 (add vs offer / remove vs poll / element vs peek)

🚀 자바에서 큐를 사용하면서 값 추가, 삭제, 검색 메서드가 2개씩 있어서 어떠한 차이점이 있는지 알아보기 위해 정리해봤습니다. ⭐️ Queue 선언 Queue q = new LinkedList(); Integer형 선언 ⭐️ Queue에

cocoon1787.tistory.com

'Language > Java' 카테고리의 다른 글

[Java] Jar  (0) 2024.08.05
[Java] String, StringBuilder, StringBuffer  (0) 2023.10.12

+ Recent posts