Java의 FIFO 대기열

Rashmi Patidar 2023년10월12일
Java의 FIFO 대기열

큐는 선입선출 개념을 구현하는 선형 데이터 구조입니다. 먼저 들어온 요소가 먼저 나온다는 개념이다.

Queue를 나타내는 기술 용어는 전면 및 후면 끝을 사용합니다. 요소는 후면 끝에서 Queue에 추가되고 전면에서 꺼집니다.

개념의 실제 예는 티켓 카운터 행으로, 첫 번째 위치에 서 있는 사람이 먼저 티켓을 받는 곳입니다. 이제 Java에서 개념 또는 데이터 구조가 Queue 인터페이스에서 구현됩니다. 인터페이스는 java.util 패키지에 있습니다.

다음은 큐 구조를 보여주는 코드 블록입니다.

package F10;

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

public class Main {
  public static void main(String[] args) {
    Queue queue = new LinkedList<String>();
    queue.add("First");
    queue.add("Second");
    queue.add("third");
    System.out.println("Created Queue: " + queue);
    String value = (String) queue.remove();
    System.out.println("The element deleted from the head is: " + value);
    System.out.println("The queue after deletion: " + queue);
    String head = (String) queue.peek();
    System.out.println("The head of the present queue is: " + head);
    int size = queue.size();
    System.out.println("The size of the queue is: " + size);
  }
}

Java에서 Queue 데이터 구조를 구현하는 다양한 방법이 있습니다. 위의 코드 블록에서 LinkedList를 사용하여 개념을 구현합니다.

먼저 Queue 참조는 new LinkedList 문을 사용하여 인스턴스화됩니다. add 메소드는 Queue 인터페이스에 있으며 지정된 요소를 Queue에 삽입합니다. 이 함수는 값이 추가될 때 부울 true를 반환합니다.

크기 제한으로 인해 요소를 추가할 수 없는 경우 메서드에서 IllegalStateException이 throw될 수 있습니다. 또한 전달된 값이 null인 경우 NullPointerException이 발생합니다. 초기 요소 세트가 목록에 추가되면 대기열이 인쇄됩니다. System.out.println 문은 인쇄해야 하는 문자열을 사용합니다.

다음으로 remove 기능은 Queue 인스턴스에 대해 호출됩니다. 큐의 헤드에 있는 요소를 제거하므로 헤드 요소를 반환합니다.

머리에 있는 요소도 제거하는 유사한 poll 기능이 있습니다. 유일한 차이점은 Queue가 비어 있을 때 NoSuchElementException을 발생시키는 remove 기능에 있습니다. 제거된 값은 변수에 저장되고 인쇄됩니다. 나머지 Queue는 나머지 요소를 확인하기 위해 인쇄됩니다.

peek 기능은 큐에서 최상위 요소를 검색하고 제거하지 않습니다. Queue의 head에 있는 element를 확인하는 방법입니다. 이 함수는 헤드 값을 반환하고 Queue가 비어 있을 때 NoSuchElementException을 발생시킵니다. size 함수는 Collection 인터페이스에 있으며 컬렉션의 크기를 반환합니다. 따라서 이 메서드는 큐에 남아 있는 요소의 크기를 인쇄합니다.

출력:

Created Queue: [First, Second, third]
The element deleted from the head is: First
The Queue after deletion: [Second, third]
The head of the present Queue is: Second
The size of the Queue is: 2
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

관련 문장 - Java Queue