Java の FIFO キュー

Rashmi Patidar 2023年10月12日
Java の FIFO キュー

キューは、先入れ先出しの概念を実装する線形データ構造です。この概念は、最初に入る要素が最初に出てくることを意味します。

キューを表す専門用語は、フロントエンドとリアエンドを使用しています。要素は後端からキューに追加され、前から取り出されます。

コンセプトの実際の例は、最初の位置に立っている人が最初にチケットを取得するチケットカウンター列です。現在 Java では、概念またはデータ構造がキューインターフェースに実装されています。インターフェイスは 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 でキューデータ構造を実装するには、さまざまな方法があります。上記のコードブロックでは、LinkedList を使用して概念を実装しています。

まず、キュー参照が new LinkedList ステートメントを使用してインスタンス化されます。add メソッドは Queue インターフェースにあり、指定された要素を Queue に挿入します。この関数は、値が追加されるとブール値 true を返します。

サイズ制限のために要素を追加できない場合、メソッドは IllegalStateException をスローする可能性があります。また、渡された値が null の場合、NullPointerException をスローします。要素の最初のセットがリストに追加されると、キューが出力されます。System.out.println ステートメントは、出力する必要のある文字列を受け取ります。

次に、remove 関数が Queue インスタンスに対して呼び出されます。キューの先頭にある要素を削除するため、head 要素を返します。

頭にある要素も削除する同様の poll 関数があります。唯一の違いは、キューが空のときに NoSuchElementException をスローする remove 関数にあります。削除された値は変数に格納され、出力されます。残りのキューは、残りの要素をチェックするために出力されます。

peek 関数は、キューの最上位の要素を取得し、それを削除しません。これは、キューの先頭にある要素をチェックする方法です。この関数はヘッド値を返し、キューが空になると 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
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