자바 Queue 클래스란?
자바의 Queue 클래스는 먼저 들어온 요소가 먼저 나가는 FIFO(First-In-First-Out) 자료구조를 구현한 클래스입니다. 큐는 일반적으로 데이터의 저장, 검색, 삭제를 위해 사용되며, 여러 다른 자료구조들과의 조합으로 다양한 알고리즘을 구현할 때 효과적으로 활용됩니다.
Queue 클래스의 메소드
자바 Queue 클래스는 다양한 메소드를 제공하며, 주요 메소드 몇 가지를 알아보겠습니다.
1. add(element) / offer(element)
큐에 요소를 추가합니다. 만약 요소를 추가할 수 없는 경우 add 메소드는 IllegalStateException을 발생시키고, offer 메소드는 false를 반환합니다.
Queue<String> queue = new LinkedList<>();
queue.add("apple");
queue.offer("banana");
2. remove() / poll()
큐의 첫 번째 요소를 제거하고 해당 요소를 반환합니다. 만약 큐가 비어있는 경우 remove 메소드는 NoSuchElementException을 발생시키고, poll 메소드는 null을 반환합니다.
Queue<String> queue = new LinkedList<>();
queue.add("apple");
queue.add("banana");
queue.remove(); // "apple"을 제거하고 반환
queue.poll(); // "banana"를 제거하고 반환
3. element() / peek()
큐의 첫 번째 요소를 반환합니다. 만약 큐가 비어있는 경우 element 메소드는 NoSuchElementException을 발생시키고, peek 메소드는 null을 반환합니다.
Queue<String> queue = new LinkedList<>();
queue.add("apple");
queue.add("banana");
queue.element(); // "apple"을 반환
queue.peek(); // "apple"을 반환
4. size()
큐에 포함된 요소의 개수를 반환합니다.
Queue<String> queue = new LinkedList<>();
queue.add("apple");
queue.add("banana");
queue.size(); // 2를 반환
위에서 소개한 메소드 외에도 다양한 메소드들이 Queue 클래스에서 제공되지만, 이 정도로도 큐를 다루는 데 충분합니다.
Queue 클래스 예제
이제 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.add("banana");
queue.offer("cherry");
// 요소 제거 및 출력
System.out.println(queue.remove()); // "apple" 출력
System.out.println(queue.poll()); // "banana" 출력
// 첫 번째 요소 확인
System.out.println(queue.element()); // "cherry" 출력
System.out.println(queue.peek()); // "cherry" 출력
// 큐의 크기 확인
System.out.println(queue.size()); // 1 출력
}
}
위의 예제는 큐에 요소를 추가하고 제거하는 방법을 보여줍니다. 큐에 'apple', 'banana', 'cherry' 순으로 추가한 후 remove와 poll 메소드를 이용해 요소를 제거하면서 출력합니다. 마지막으로 element와 peek 메소드를 이용해 첫 번째 요소를 확인하고 출력하며, 큐의 크기를 확인하여 출력합니다.
결론
이렇게 자바 Queue 클래스의 사용법과 예제를 알아보았습니다. 큐는 데이터의 순서가 중요한 경우에 유용하게 사용될 수 있는 자료구조입니다. Queue 클래스는 수많은 메소드들을 제공하여 큐의 다양한 작업을 도와주므로, 필요에 맞게 활용하여 프로그래밍에 최적화된 코드를 작성할 수 있습니다.
댓글