ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [자료구조] Queue
    알고리즘 2023. 4. 12. 21:21

    자바(Java)에서 Queue는 데이터를 순서대로 관리하기 위한 자료구조 중 하나이다. 
    이 자료구조는 선입선출(FIFO, First-In-First-Out)의 원칙을 따르며, 데이터가 들어온 순서대로 처리된다.

     

    Java에서 Queue는 java.util 패키지에 속해 있으며, 다양한 구현체를 제공한다.

    대표적인 Queue 구현체로는 LinkedList, ArrayDeque, PriorityQueue 등이 있다.

     

    LinkedList는 연결 리스트를 기반으로 한 Queue 구현체이다. 요소를 추가하거나 삭제할 때마다 리스트의 노드를 생성하거나 제거하기 때문에 처리 속도가 느리지만, 요소를 삽입하거나 삭제하는 작업에는 빠르게 대응할 수 있다.

     

    ArrayDeque는 배열을 기반으로 한 Queue 구현체이다. Queue의 크기를 동적으로 조정할 수 있으며, 요소를 추가하거나 삭제할 때 배열의 원소를 이동시키는 방식으로 처리하기 때문에 LinkedList에 비해 처리 속도가 빠르다.

    PriorityQueue는 우선순위를 고려하여 데이터를 저장하는 Queue 구현체이다. 요소를 추가할 때 우선순위에 따라 정렬되며, 우선순위가 가장 높은 요소가 먼저 처리된다.

    Queue 인터페이스는 offer(), poll(), peek() 메서드를 제공한다.

    offer() 메서드는 Queue의 맨 뒤에 요소를 추가한다.

    poll() 메서드는 Queue의 맨 앞에서 요소를 제거하고 반환한다.

    peek() 메서드는 Queue의 맨 앞 요소를 반환한다.

    예를 들어, 다음과 같이 Queue를 생성하고 요소를 추가하고 삭제할 수 있다.

     

    Queue<String> queue = new LinkedList<>();
    
    queue.offer("apple");
    queue.offer("banana");
    queue.offer("cherry");
    
    String first = queue.poll(); // "apple" 반환
    String second = queue.peek(); // "banana" 반환

    위의 코드에서는 LinkedList를 사용하여 Queue를 생성하였고, offer() 메서드를 사용하여 "apple", "banana", "cherry" 요소를 순서대로 추가하였다.

    그리고 poll() 메서드를 사용하여 맨 앞 요소를 삭제하고 반환하였고,

    peek() 메서드를 사용하여 맨 앞 요소를 반환하였다.

Designed by Tistory.