Spring\Java

[Java] Queue 큐

해봄_2 2021. 8. 23. 15:04

Queue란?

- 데이터를 일시적으로 쌓아두기 위한 자료구조로 스택과는 다르게 FIFO 형태를 가짐

- 컴퓨터 버퍼에서 주로 사용

  • 마구 입력이 되었으나 처리를 하지 못할 때, 버퍼를 만들어 대기 시킴

- Enqueue : 큐 맨 뒤에 데이터 추가

- Dequeue : 큐 맨 앞쪽의 데이터 삭제

 

1. 선언

- 자바에서 큐는 LinkedList를 사용 -> LinkedList 와 Queue 선언 필요

import java.util.LinkedList;
import java.util.Queue;

Queue<Integer> queue = new LinkestList<>();
Queue<String> queue = new LinkestList<>();

 

2. 값 추가

- add의 경우 성공시 true 반환, 실패시 IllegalStateException 발생

queue.add(1); // 1 삽입
queue.offer(2); // 2 삽입

 

3. 값 삭제

- remove의 경우 비어있을 때 NoSuchElement 반환

queue.poll(); // 첫번째 값 반환 -> 삭제, 비어있을 경우 null
queue.remove(i); // 첫번째 값 제거 or 원하는 val 삭제 가능
queue.clear(); // 초기화

 

4. 값 출력

/* 전체 출력 */
Iterator iter = queue.iterator();
while(iter.hasNext()) {
	System.out.println(iter.next());
}

/* 첫번째 값 참조*/
queue.peek();

 

5. 사이즈 구하기

queue.size();

 

우선순위큐 (PriorityQueue)?

- 힙을 사용하는것이 일반적

- 이진트리구조

- 원소는 비교가 가능한 기준 필요

- 시간 복잡도 : O(N Log N)

- 우선순위중요 상황에 쓰임

 

1. 선언

import java.util.PriorityQueue;

PriorityQueue<Integer> pq = new PriorityQueue<>(); // 낮은순
PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder()); // 높은순

 

 

*출처 : https://crazykim2.tistory.com/571#text6

 

[JAVA] Queue의 개념 및 사용법 정리

안녕하세요 이번 포스팅에서는 Queue에 대해서 알아보겠습니다 목차 Queue란? Queue 선언하기 Queue 값 추가하기 Queue 값 삭제하기 Queue 크기 구하기 Queue 값 출력하기 Queue란? Queue란 Collection 프레임워크

crazykim2.tistory.com

https://coding-factory.tistory.com/602