Queue

U·2022년 9월 1일
0

Java

목록 보기
2/4

Queue란?

  • 순서대로 처리되는 자료구조
  • FIFO(First in First Out) : 먼저 들어온 데이터가 먼저 나감
  • 줄을 선다는 의미로 젤 앞의 데이터만 본다고 할 수 있다.

Enqueue

  • 큐의 맨 뒤(tail)에 데이터 추가

Dequeue

  • 큐의 맨 앞쪽(head)의 데이터 삭제

-> 입구와 출구가 다름

  • tail과 head가 같으면 Queue가 비어있는 것
  • tail은 항상 비어있는 것을 가리켜야 함
  • remove를 사용하면 head가 뒤로 밀리는데 Array를 사용할 때 공간이 부족하게 됨 -> 이것을 해결하기 위해 Circular Queue 사용 (지금 할 필요는 없음)
  • 자바에서 큐는 LinkedList를 활용하여 생성
    -> import java.util.LinkedList, import java.util.Queue;
  • Queue interface에서는 add, element, remove 메소드가 기본임

how to use?🙄

Queue<Integer> queue = new LinkedList<>();
Queue<String> queue = new LinkedList<>();
  
queue.add(1); // queue에 값 1 추가
queue.add(2); // queue에 값 2 추가
queue.offer(3); // queue에 값 3 추가
  
queue.poll(); // queue에 첫번째 값 반환 후 제거, 비어있다면 null
queue.remove(); // queue에 첫번째 값 제거, 비어있다면 NoSuchElement 에러 반환
queue.clear(); // queue 초기화
queue.peek(); // queue의 첫번째 값 참조
queue.size(); // queue의 크기 구하기

💡 만약 모든 값을 출력하고 싶다면 iterator 클래스 사용하여 출력

Iterator it = queue.iterator();
while(it.hasNext())
   System.out.print(it.next() + " ");
profile
백엔드 개발자 연습생

0개의 댓글