선입선출(FIFO) 자료구조
JAVA에서 Queue를 사용하기 위해선 Queue뿐아니라 LinkedList도 import하여 사용해야 한다.
import java.util.LinkedList;
import java.util.Queue;
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언, linkedlist 이용
Queue<String> queue = new LinkedList<>(); //String형 queue 선언, linkedlist 이용
add
: 큐가 꽉찬 경우 예외 발생
offer
: 큐가 꽉찬 경우 false
Queue<Integer> stack = new LinkedList<>(); //int형 queue 선언
queue.add(1); // queue에 값 1 추가
queue.add(2); // queue에 값 2 추가
queue.offer(3); // queue에 값 3 추가
remove
: 큐가 비어있을 시 예외 발생
poll
: 큐가 비어있을 시 null
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언
queue.offer(1); // queue에 값 1 추가
queue.offer(2); // queue에 값 2 추가
queue.offer(3); // queue에 값 3 추가
queue.poll(); // queue에 첫번째 값을 반환하고 제거 비어있다면 null
queue.remove(); // queue에 첫번째 값 제거
queue.clear(); // queue 초기화
peek
: 해당 list의 첫번째 값 참조.
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언
queue.offer(1); // queue에 값 1 추가
queue.offer(2); // queue에 값 2 추가
queue.peek(); // queue의 첫번째 값 참조
size
: list의 크기 출력
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언
queue.offer(1); // queue에 값 1 추가
queue.offer(2); // queue에 값 2 추가
queue.size(); // queue의 크기 출력
clear
: 큐 데이터 전체 삭제
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언
queue.offer(1); // queue에 값 1 추가
queue.offer(2); // queue에 값 2 추가
queue.clear(); // queue 내 데이터 전체 삭제
isEmpty()
: 존재 시 false, 비어있을 시 true
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언
queue.offer(1); // queue에 값 1 추가
queue.offer(2); // queue에 값 2 추가
queue.isEmpty(); // queue 내 데이터 전체 삭제
관련문제
https://programmers.co.kr/learn/courses/30/lessons/42586?language=java
풀이
https://github.com/chogyujin/algorithm/blob/1b1a5043b72d69aeab52143a76beec8ae29827a6/programmers/004.%20%EA%B8%B0%EB%8A%A5%EA%B0%9C%EB%B0%9C.md