[ 목차 ]
안녕하세요.
오늘은 자바의 Queue 인터페이스에 대해 알아보겠습니다.
Queue란?
자바에서 Queue는 선입선출 구조를 가진 자료구조이다.
java.util.Queue 인터페이스로 정의된다.
LinkedList, PriorityQueue 등이 java.util.Queue 인터페이스를 구현한 대표적인 클래스들이다.
offer(E e) / add(E e)
큐의 맨 뒤에 요소를 추가한다.
offer(E e) : 크기 제한으로 실패시 false를 반환한다.
add(E e) : 크기 제한으로 실패시 IllegalStateException을 발생시킨다.
poll() / remove()
큐의 맨 앞에 있는 요소를 제거하고, 그 값을 반환한다.
poll() : 큐가 비어있으면 null을 반환한다.
remove() : 큐가 비어있으면 NoSuchElementException을 발생시킨다.
peek() / element()
큐의 맨 앞에 있는 요소를 반환한다. 제거는 하지 않는다.
peek() : 큐가 비어있으면 null을 반환한다.
element() : 큐가 비어있으면 NoSuchElementException을 발생시킨다.
정리
1. 큐는 선입선출하는 자료구조이다.
2. java.util.Queue는 인터페이스이므로, LinkedList나 PriorityQueue 클래스로 구현해줘야한다.
3. add / offer / poll / remove / peek / element 메서드가 있다.
4. 실패 시 false(offer 실패 시) 또는 null 반환 - offer / poll / peek
5. 실패 시 예외 발생 - add / remove/ element
큐가 비어있거나 꽉 차있어도 예외처리 필요 없다. = offer / poll / peek
오 폴 픽 !
'JAVA' 카테고리의 다른 글
| [JAVA] 자바의 Map, 그리고 순회 (0) | 2024.12.10 |
|---|---|
| [JAVA] 인터페이스란(Interface)? - 추상클래스와의 차이 (1) | 2024.12.09 |
| [JAVA] Stack (0) | 2024.12.07 |
| [JAVA] Deque + 왜 LinkedList보다 ArrayDeque로 구현하는 것이 더 좋을까? (0) | 2024.12.06 |