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]
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