1. 큐(Queue)
1) 선입선출(First In First out; FIFO) 자료구조
- 먼저 들어온 데이터가 먼저 나가는 구조
2) 입력 순서대로 데이터 처리가 필요할 때 사용
- 프린트 출력 대기열, BFS(Breath-First-Search) 등
2. 큐 기본 구조
1) 선입선출 구조를 따름
2) 기본적으로 데이터 추가, 데이터 꺼내기, 큐 공간 확인 동작으로 이루어짐
3. 큐 기본 연산 (1)
1) 데이터 추가(Enqueue)
- 큐에 데이터 추가
3. 큐 기본 연산(2)
1) 데이터 꺼내기(Dequeue)
- 큐에서 데이터 꺼내기
4. 큐 구현과 사용법
1) 큐의 생성과 데이터 생성
Queue queue = new LinkedList();
queue.add(1);
queue.add(2);
queue.add(3);
queue.add(4);
queue.add(5);
System.out.println(queue);
자바에서 큐는 LinkedList를 활용하여 생성해야 한다. 그래서 Queue와 LikedList가 다 import 되어있어야 사용이 가능하다.
2) 데이터 꺼내기
System.out.println(queue.poll());
System.out.println(queue);
System.out.println(queue.poll());
System.out.println(queue);
// peek은 스택과 마찬가지로 출력만 해주고 데이터를 꺼내진 않는다.
System.out.println(queue.peek());
System.out.println(queue);
데이터 꺼내는 방식과 출력은 Stack과 동일하지만 Queue는 먼저 입력된 데이터가 먼저 나간다.
3) 그 외에 확인할 수 있는 것들
System.out.println(queue.contains(3));
System.out.println(queue.size());
System.out.println(queue.isEmpty());
queue.clear();
System.out.println(queue);
Stack과 동일하게 데이터에 3이 있는지와 size를 체크할 수 있고 데이터가 비어있는지 확인과 데이터를 모두 클리어할 수도 있다.
4) Stack과 다른 결과
System.out.println(queue.poll());
Stack에서는 빈 공간의 데이터에서 데이터를 꺼내면 에러가 발생했는데 Queue는 빈 공간에 데이터를 꺼낼 때 null로 반환을 시켜주는 차이가 있다.
'Java' 카테고리의 다른 글
[JAVA] Logging (로깅) (0) | 2023.10.26 |
---|---|
[JAVA] Stream 사용법과 구현 (0) | 2023.05.18 |
[JAVA] 배열(Array)을 익히고 구현하기 (0) | 2023.05.11 |
[JAVA] Stack 자료구조의 이해와 사용법 (0) | 2023.05.10 |
[JAVA] 메소드 오버로딩(Method OverLoading) (0) | 2023.05.08 |