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