HOWTO · Java

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]