자바 Queue 클래스
Queue 클래스는 자바 컬렉션 프레임워크에서 제공하는 인터페이스로, FIFO(First-In-First-Out) 방식으로 요소(element)를 저장하는 자료구조를 구현한 클래스입니다. Queue는 '대기열'이라는 의미로, 일반적인 큐(Queue)의 동작 원리를 구현하여 요소를 추가하거나 제거할 수 있습니다.
Queue 클래스의 주요 메서드
boolean add(E element)
: Queue에 요소를 추가하고, 추가에 성공하면 true를 반환합니다.boolean offer(E element)
: Queue에 요소를 추가하고, 추가에 성공하면 true를 반환합니다.E remove()
: Queue의 맨 앞에 있는 요소를 제거하고 해당 요소를 반환합니다. Queue가 비어있을 경우 NoSuchElementException 예외를 발생시킵니다.E poll()
: Queue의 맨 앞에 있는 요소를 제거하고 해당 요소를 반환합니다. 요소가 없을 경우 null을 반환합니다.E element()
: Queue의 맨 앞에 있는 요소를 반환합니다. Queue가 비어있을 경우 NoSuchElementException 예외를 발생시킵니다.E peek()
: Queue의 맨 앞에 있는 요소를 반환합니다. 요소가 없을 경우 null을 반환합니다.
Queue 클래스의 예제
import java.util.LinkedList;
import java.util.Queue;
public class QueueExample {
public static void main(String[] args) {
Queue<String> queue = new LinkedList<>();
// 요소 추가
queue.add("apple");
queue.offer("banana");
queue.offer("cherry");
// 요소 확인
System.out.println("Queue: " + queue);
// 요소 제거
String removedElement1 = queue.remove();
System.out.println("Removed Element: " + removedElement1);
System.out.println("Queue after removal: " + queue);
// 요소 반환
String element = queue.element();
System.out.println("Element at front: " + element);
// 요소 제거 및 반환
String removedElement2 = queue.poll();
System.out.println("Removed Element: " + removedElement2);
System.out.println("Queue after removal: " + queue);
}
}
위의 예제는 Queue 인터페이스를 구현한 LinkedList 클래스를 활용하여 Queue를 구현한 예제입니다. Queue에 요소를 추가하고, remove() 및 poll()을 통해 요소를 제거하고 반환한 후, element() 및 peek()을 통해 Queue의 맨 앞 요소를 확인합니다. 예제 실행 결과는 다음과 같습니다:
Queue: [apple, banana, cherry]
Removed Element: apple
Queue after removal: [banana, cherry]
Element at front: banana
Removed Element: banana
Queue after removal: [cherry]
댓글