728x90
반응형
2022.04.24
93번째 포스팅
0. Queue?
① 선입선출(FIFO)의 자료구조. 대기열이라고도 한다.
② Queue에 자료를 추가하는 것을 EnQueue라고 하고 반대로 넣어둔 자료를 꺼내는 것을 DeQueue라고 한다.
③ 데이터가 들어오는 위치는 가장 뒤(Rear 또는 Back이라고 한다.)에 있고, 데이터가 나가는 위치는 가장 앞(Front라고 한다.)에 있어서, 먼저 들어오는 데이터가 먼저 나가게 된다.
1. 선언 및 초기화
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
package develog;
import java.util.LinkedList;
import java.util.Queue;
public class Develog {
public static void main(String[] args) {
/*
* 큐의 선언 및 초기화
* 1. <>안의 Object에는 사용하고 싶은 클래스 혹은 Wrapper클래스를 적어준다.
* 2. Queue는 Collection을 상속받은 인터페이스
* 3. 인스턴스 생성 시, LinkedList로 선언해주어야 한다.
*/
Queue<Object> queue = new LinkedList<>();
}
}
|
cs |
2. 구조
① Queue는 Collection을 상속받은 인터페이스다.
② Collection은 List, Set 등에서 사용하는 add(), clear(), remove() 등의 메소드를 가지고 있다.
3. 메소드
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
package develog;
import java.util.LinkedList;
import java.util.Queue;
public class Develog {
public static void main(String[] args) {
Queue<Object> queue = new LinkedList<>();
/*
* isEmpty()
* 1. queue가 비어있으면 true를 리턴
* 2. 그 반대의 경우 false를 리턴
*/
queue.isEmpty();
/*
* peek()
* 1. FIFO구조에 맞게 front의 값을 출력
* 2. 단순 출력만 하므로, front의 값을 출력 후 삭제하지 않음
*/
queue.peek();
/*
* poll()
* 1. FIFO구조에 맞게 front의 값을 출력
* 2. 값을 출력하는 동시에 삭제
* 3. front가 가리키던 node의 value가 새로운 front가 됨
*/
queue.poll();
/*
* add(Object)
* 1. queue에 값을 추가
* 2. FIFO구조에 맞게 가장 마지막에 입력된 값이 rear가 됨
*/
queue.add(new Object());
/*
* clear()
* 1. queue의 값들을 비워줌
* 2. queue의 메모리가 제거되는 것은 아님
* 3. clear() 메소드는 for문을 돌면서 queue의 node와 value들을 차례대로 제거함
*/
queue.clear();
/*
* size();
* 1. queue에 들어있는 값들의 갯수를 리턴
*/
queue.size();
}
}
|
cs |
728x90
반응형
댓글