본문 바로가기

공부 기록/Java

[Java] 큐(Queue)

큐(Queue)

- 선입선출(FIFO) : 가장 먼저 삽입된 요소가 가장 먼저 삭제된다.

- 선입선출은 양방향(front, rear)에서 이뤄진다.

- 너비 우선 탐색(BFS)에서 자주 사용한다.

  

Queue 사용하기

- Queue 선언

  

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

 

보통 LinkedList를 이용한다.

  


 

삽입 : queue.offer(x), queue.add(x)

  

queue.offer(1); // 삽입 실패 시 false 반환
queue.add(1); // 삽입 실패 시 IllegalStateException

  

rear에 값을 삽입한다.

 


삭제 :  queue.poll(), queue.remove()

  

int a = queue.poll(); // 큐가 비어있다면 null 반환
int a = queue.remove(); // 큐가 비어있다면 NoSuchElementException

  

front의 값을 조회하고, 삭제한다.

 


조회 : queue.peek(), queue.element()

  

int a = queue.element(); // 큐가 비어있다면 null 반환
int a = queue.peek(); // 큐가 비어있다면 NoSuchElementException

  

front의 값을 조회한다.