Java でキューをインスタンス化する
この記事では、Java で Queue
オブジェクトをインスタンス化するメソッドを紹介します。このチュートリアルでは、インスタンス化されたオブジェクトからのメソッド呼び出しについてさらに説明し、実装します。キューはインターフェースであり、オブジェクトを直接作成することはできません。ただし、Queue
インターフェイスをすでに実装しているクラスを実装することはできます。それらのクラスのいくつかは、AbstractQueue
、ArrayDeque
、DelayQueue
、LinkedList
です。したがって、このチュートリアルでは、LinkedList
クラスと ArrayDeque
クラスを使用してキューをインスタンス化します。
Java で LinkedList
クラスを使用して Queue
オブジェクトを実装する
LinkedList
クラスは、LinkedList データ構造の概念を実装します。これはコレクションフレームワークの一部であり、java.util
パッケージで利用できます。LinkedList の要素は、ポインターとアドレスの形式で格納されます。この要素はノードと呼ばれます。LinkedList でノードに直接アクセスすることはできません。ノードにアクセスするには、頭から始めて、アクセスしたいノードに到達するまでたどり着く必要があります。LinkedList は List インターフェイスを実装し、List インターフェイスとコレクションインターフェイスに存在するすべてのメソッドを継承します。キュー
も同じパッケージで利用できます。LinkedList
クラスを実装する Queue
のオブジェクトを作成できます。add()
関数を使用して、キュー内のデータを追加できます。
まず、import java.util.Queue
と import java.util.LinkedList
をそれぞれ使用して、Queue と LinkedList をインポートします。次に、クラス QueueDemo
を作成し、main メソッドを宣言します。次に、LinkedList
クラスを実装して、オブジェクト queue
をインスタンス化します。オブジェクトを使用して add()
メソッドを呼び出し、5つの整数値を追加します。最後に、キューの要素を出力します。
この例では、キューインターフェイスを実装する LinkedList
クラスを使用してキューオブジェクトを作成しました。これは、キューがインターフェイスであり、そのオブジェクトを直接作成できないためです。整数値をキューに格納するため、オブジェクトの作成時にジェネリック型整数
を指定しました。出力セクションには、キューに格納されている要素が表示されます。
サンプルコード:
import java.util.LinkedList;
import java.util.Queue;
public class QueueDemo {
public static void main(String[] args) {
Queue<Integer> queue = new LinkedList<>();
queue.add(8);
queue.add(9);
queue.add(10);
queue.add(2);
queue.add(5);
System.out.println("Added Queue in memory: " + queue);
}
}
出力:
Added Queue in memory: [8, 9, 10, 2, 5]
Java で ArrayDeque
クラスを使用して Queue
オブジェクトを実装する
Java 言語では、コレクションフレームワークの一部として ArrayDeque
クラスが定義されています。16 個の要素を保持するのに十分な初期容量で、メモリ内に空の場所のセットを作成します。ArrayDeque は ArrayDouble Ended Queue とも呼ばれ、両側から要素を挿入または削除できます。スタック(後入れ先出し)またはキュー(先入れ先出し)を実装します。したがって、ArrayDeque
クラスの実装で Queue
のオブジェクトを作成できます。
上記のようにパッケージをインポートしますが、このメソッドでは、LinkedList
ではなく ArrayDeque
をインポートしてください。次に、クラス Demo を作成し、main メソッドを宣言します。次に、Queue
インターフェイスをインスタンス化して、ArrayDeque
クラスを実装します。Queue
のオブジェクトを aq
として作成します。aq
オブジェクトを使用して、add()
メソッドを 4 回呼び出します。4つの異なる文字列を追加します。最後に、aq
オブジェクトを出力します。
以下の例では、オブジェクトの作成時にジェネリック型 String
を使用しています。これは、キューに文字列アイテムを追加しているためです。したがって、ArrayDeque
クラスを実装する Queue
オブジェクトをインスタンス化しました。
コード例:
import java.util.ArrayDeque;
import java.util.Queue;
public class Demo {
public static void main(String[] args) {
Queue<String> aq = new ArrayDeque<String>();
aq.add("first");
aq.add("second");
aq.add("third");
aq.add("fourth");
System.out.println("Added Queue in memory: " + aq);
}
}
出力:
Added Queue in memory: [first, second, third, fourth]