Java でのエンキューとデキュー

Haider Ali 2023年10月12日
  1. キュー
  2. Java でキューに入れる
  3. Java でのエンキューとデキュー
Java でのエンキューとデキュー

Java のエンキューデキューの概念に入る前に、キューの概念全体の基本的な理解を深めましょう。それは実際には何ですか?実際の例など。に飛び込みましょう。

キュー

プログラミングに関するキューは、このデータ型が実行される一方向の順序を持​​つ線形構造です。一方向の順序は FIFO(先入れ先出し)です。実際の例は、銀行の外に見える人の列(キュー)です。最初に来た人は誰でも最初に出されて出て行きます。したがって、プログラミングでエンキューデキューと言うときは、それぞれアイテムを追加および削除することを意味します。下の写真を見てください。

Java をエンキューおよびデキューする

ご覧のとおり、キュー内の追加(エンキュー)は常に後ろからであり、削除(デキュー)は常に前からです。キューについて具体的に理解できたので、Java でのキューの実装を見てみましょう。

Java でキューに入れる

Java では、キューはリンクリストによって実装されるインターフェースと見なされます。次のコード例は、Java でキューのオブジェクトを作成する方法を示しています。

import java.util.LinkedList; // Class Which implements queue list etc.
import java.util.Queue; //queue is an iterface

public class Main {
  public static void main(String[] args) {
    Queue<String> queue = new LinkedList<>();
    // to implement Queue
  }
}

Java で実装するには、リンクリストとキューのクラスを追加する必要があります。(コードの上部を参照してください)。キューを実装する際、この目的のためにリンクリストを使用します。次に、キューへのアイテムの追加とキューからのアイテムの削除に関連するメソッドを理解しましょう。

Java でのエンキューとデキュー

前述のように、これらのタイプの操作の順序は FIFO です。それでは、作成したキューに値を追加(エンキュー)しましょう。キューは文字列であるため、次の値で十分です。

import java.util.LinkedList; // Class Which implements queue list etc.
import java.util.Queue; //queue is an iterface

public class Main {
  public static void main(String[] args) {
    Queue<String> queue = new LinkedList<>();
    // to implement Queue

    // Adding In Queue  using `add()` method
    queue.add("Bill Gates"); // enque
    queue.add("Mark  Mark Zuckerberg"); // enque
    queue.add("Elon Musk"); // enquue
    queue.add("Jeff Bezos");
    queue.offer("Donald Trump"); // alternatice enque

    System.out.println("Queue : " + queue); // queue print
  }
}

上記の例では、次の 2つの方法を使用して 4つの値を追加しました。

queue.add()

コードでわかるように、キューに 4つの文字列値を追加しました。このメソッドについて知っておくべきもう 1つのことは、チェックされていない例外がスローされることです。たとえば、キュ​​ーが制限されている場合、add() メソッドは、スペースがないときに別の要素を追加すると例外を返します。それはすべてキューの性質に依存します。Java のキューの詳細についてはこちらを参照します。

queue.offer()

offer() メソッドは add() の代替です。この特定のメソッドは例外をスローしません。代わりに、真と偽の値を示します。上記の例では、offer() を使用してキューの 5 番目の要素を追加しました。上記のプログラムの出力は次のようになります。

Queue : [ Bill Gates, Mark Zuckerberg, Elon Musk, Jeff Bezos, Donald Trump ]

これで、キューに要素を追加(エンキュー)する方法を理解できました。キューからアイテムを削除する方法を見てみましょう。

queue.remove()

remove() メソッドは、キューから要素を削除するために使用されます。キューの最前部で操作されます。たとえば、上記のキューから要素を削除する場合、最初に削除される要素は Bill Gates になります。次のコードを見てください。

import java.util.LinkedList; // Class Which implements queue list etc.
import java.util.Queue; //queue is an iterface

public class Main {
  public static void main(String[] args) {
    Queue<String> queue = new LinkedList<>();
    // to implement Queue

    // Adding In Queue  using `add()` method
    queue.add("Bill Gates"); // enque
    queue.add("Mark  Mark Zuckerberg"); // enque
    queue.add("Elon Musk"); // enquue
    queue.add("Jeff Bezos");
    queue.offer("Donald Trump"); // alternatice enque

    System.out.println("Queue : " + queue); // queue print

    String name = queue.remove(); // Dequeue
    System.out.println("Removed from queue : " + name);
    System.out.println(queue);

    name = queue.poll(); // altrenative deque method
    System.out.println("Removed from queue : " + name);
    System.out.println(queue);
  }
}

上記のコード例でわかるように、キューからアイテムを削除するために remove() メソッドを使用しました。空のキューから要素を削除しようとすると、チェックされていない例外がスローされます。

queue.poll()

remove() の代替メソッドは poll() で、空のキューから要素を削除すると NULL 値を返します。上記のコードの出力を見てください。

Queue : [Bill Gates, Mark  Mark Zuckerberg, Elon Musk, Jeff Bezos, Donald Trump]
Removed from queue : Bill Gates
[Mark  Mark Zuckerberg, Elon Musk, Jeff Bezos, Donald Trump]
Removed from queue : Mark  Mark Zuckerberg
[Elon Musk, Jeff Bezos, Donald Trump]
著者: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn

関連記事 - Java Queue