반응형
큐(Queue)는 선입선출(First-In-First-Out, FIFO) 원칙에 따라 작동하는 자료 구조입니다. 즉, 큐에 추가된 요소 중 가장 먼저 추가된 것이 가장 먼저 제거됩니다.
Java에서는 내장 Queue 인터페이스를 사용할 수 있습니다. Queue 인터페이스는 Collection 인터페이스의 하위 인터페이스로, 큐에 요소를 추가, 제거 및 검사하는 데 사용할 수 있는 여러 가지 메소드를 제공합니다.
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.add("orange");
// 큐 요소 중 첫번째 값 삭제
String firstElement = queue.remove();
System.out.println("Removed element: " + firstElement);
// 큐의 첫번째 요소 검사
String peekElement = queue.peek();
System.out.println("Peeked element: " + peekElement);
// for-each 반복문을 통한 요소 출력
System.out.println("Elements in the queue:");
for (String element : queue) {
System.out.println(element);
}
}
}
이 예제에서는 LinkedList 클래스를 사용하여 Queue를 생성합니다. 그런 다음, add() 메소드를 사용하여 세 개의 요소를 큐에 추가합니다.
다음으로 remove() 메소드를 사용하여 큐에서 첫 번째 요소를 제거하고 콘솔에 출력합니다. 또한 peek() 메소드를 사용하여 큐에서 첫 번째 요소를 검사하고 콘솔에 출력합니다.
add(E e): 큐에 요소를 추가합니다. 추가가 실패한 경우 예외를 throw합니다.
offer(E e): 큐에 요소를 추가합니다. 추가가 실패한 경우 false를 반환합니다.
remove(): 큐에서 첫 번째 요소를 제거하고 그 요소를 반환합니다. 큐가 비어있는 경우 예외를 throw합니다.
poll(): 큐에서 첫 번째 요소를 제거하고 그 요소를 반환합니다. 큐가 비어있는 경우 null을 반환합니다.
element(): 큐에서 첫 번째 요소를 반환합니다. 큐가 비어있는 경우 예외를 throw합니다.
peek(): 큐에서 첫 번째 요소를 반환합니다. 큐가 비어있는 경우 null을 반환합니다.
- BFS(너비 우선 탐색) 알고리즘: BFS는 그래프를 탐색하는 알고리즘으로, 큐를 사용하여 구현됩니다. BFS는 최단 경로를 찾는 데 자주 사용됩니다.
- 슬라이딩 윈도우(Sliding Window) 알고리즘: 슬라이딩 윈도우는 연속적인 부분 배열을 처리하는 데 사용되며, 큐를 사용하여 구현됩니다. 이 알고리즘은 일정한 크기의 윈도우를 슬라이드하여 연속적인 부분 배열을 만들고 처리합니다.
- 구현 문제: 구현 문제는 주어진 조건에 따라 코드를 구현하는 문제입니다. 이러한 문제에서는 종종 큐를 사용하여 구현할 수 있습니다. 예를 들어, 큐를 사용하여 LRU(Least Recently Used) 캐시를 구현할 수 있습니다.
반응형
'컴퓨터 언어 > Java' 카테고리의 다른 글
JPA 기본 개념과 활용 방법 (0) | 2023.08.29 |
---|---|
Project Jigsaw 사용 방법 (0) | 2023.07.09 |
Stream (0) | 2023.07.06 |
Sliding Window 알고리즘 (0) | 2023.04.27 |
BFS(너비 우선 탐색) 알고리즘 (0) | 2023.04.27 |