HOWTO · Java
Java でのエンキューとデキュー
Java でのエンキューとデキューおよびその他すべての関連情報を理解する
Java のエンキューとデキューの概念に入る前に、キューの概念全体の基本的な理解を深めましょう。それは実際には何ですか?実際の例など。に飛び込みましょう。
キュー
プログラミングに関するキューは、このデータ型が実行される一方向の順序を持つ線形構造です。一方向の順序は FIFO(先入れ先出し)です。実際の例は、銀行の外に見える人の列(キュー)です。最初に来た人は誰でも最初に出されて出て行きます。したがって、プログラミングでエンキューとデキューと言うときは、それぞれアイテムを追加および削除することを意味します。下の写真を見てください。
ご覧のとおり、キュー内の追加(エンキュー)は常に後ろからであり、削除(デキュー)は常に前からです。キューについて具体的に理解できたので、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]