-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathQueue.java
More file actions
38 lines (29 loc) · 1.67 KB
/
Copy pathQueue.java
File metadata and controls
38 lines (29 loc) · 1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.util.LinkedList;
import java.util.Queue;
public class QueueExample {
public static void main(String[] args) {
// 1. Queue 개념 설명
// Queue는 FIFO(First-In-First-Out) 원칙에 따라 동작하는 자료 구조입니다.
// 즉, 먼저 들어온 요소가 먼저 나가게 됩니다.
// 자바에서는 Queue 인터페이스를 통해 여러 종류의 큐를 사용할 수 있습니다. LinkedList, ArrayDeque 등이 해당됩니다.
// [Front] A -> B -> C [Rear]
// 2. 자주 사용되는 메서드 사용법 및 예시 (시간복잡도 포함)
Queue<String> queue = new LinkedList<>();
// offer(): 큐의 끝에 요소 추가 (시간복잡도: O(1))
queue.offer("A");
queue.offer("B");
queue.offer("C");
// peek(): 큐의 시작 부분의 요소를 조회하지만 제거하지는 않음 (시간복잡도: O(1))
String frontElement = queue.peek(); // "A"
// poll(): 큐의 시작 부분의 요소를 조회하고 제거 (시간복잡도: O(1))
String removedElement = queue.poll(); // "A"
// size(): 큐의 크기를 반환 (시간복잡도: O(1) for LinkedList)
int size = queue.size(); // 2
// 3. 언제 사용하면 좋을지
// 큐는 순차적인 처리가 필요한 경우나, 먼저 들어온 요소를 먼저 처리해야하는 상황에 사용하면 좋습니다.
// 예를 들면, 작업 스케줄링, 데이터 버퍼링 등에서 사용됩니다.
// 4. 도식화
// 초기: [Front] A -> B -> C [Rear]
// A 제거 후: [Front] B -> C [Rear]
}
}