glog : cupucharm

[Java] Queue 본문

java/자료구조

[Java] Queue

오이호박참외 2023. 2. 3. 11:35

FIFO 형태 : 먼저 들어온 데이터가 가장 먼저 나가는 구조 (선입선출)

 

 

Enqueue : 큐 맨 뒤에 데이터 추가

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

특징

  1. 한 쪽 끝은 프런트로 정해서 삭제 연산만 수행
  2. 다른 한 쪽 끝은 리어로 정해서 삽입 연산만 수행
  3. 그래프의 넓이 우선 탐색(BFS)에서 사용
  4. 컴퓨터 버퍼에서 주로 사용, 마구 입력이 되었으나 처리를 하지 못할 때, 버퍼 (큐)를 만들어서 대기 시킴

Queue 사용법

Queue 선언

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

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

자바에서 큐는 LinkedList를 활용하여 생성해야 함

Queue 값 추가

add(value) 또는 offer(value) 메서드 활용

Queue<Integer> queue = new LinkedList<>();
queue.add(1);
queue.add(2);
queue.offer(3);

add(value) 메소드의 경우 만약 삽입에 성공하면 true를 반환하고, 큐에 여유 공간이 없어 삽입에 실패하면 IllegalStateException을 발생

Queue 값 삭제

Queue<Integer> queue = new LickedList<>();
queue.offer(1);
queue.offer(2);
queue.offer(3);

queue.poll();    //queue에 첫번째 값을 반환하고 제거, 비어있다면 null
queue.remove();  //queue에 첫번째 값 제거
queue.clear();   //queue 초기화

peek()

첫번째로 저장된 값을 참조

'java > 자료구조' 카테고리의 다른 글

[Java] Stack  (5) 2023.02.03