両端キューは、キューの両端で要素を追加および削除できるデータ構造です。 Java では、Deque インターフェイスがこのデータ構造の実装を提供します。 Deque は、ArrayDeque や LinkedList などの複数の実装を持つインターフェイスです。この記事では、Java で Deque の addFirst 関数と addLast 関数を使用して deque 操作を実行する方法を説明します。
まず、Deque の基本的な操作を理解する必要があります。 Deque インターフェイスは、要素の追加、要素の削除、先頭要素と末尾要素の取得など、多くのメソッドを定義します。このうち、addFirst関数とaddLast関数はキューの両端に要素を追加する関数です。
addFirst 関数は、キューの先頭に要素を追加するために使用されます。たとえば、新しい Deque オブジェクトを作成し、addFirst 関数を使用してキューの先頭に要素を追加できます。
Deque<Integer> deque = new ArrayDeque<>(); deque.addFirst(1); deque.addFirst(2); deque.addFirst(3); System.out.println(deque); //[3, 2, 1]
上記のコードでは、新しい ArrayDeque オブジェクトを作成し、addFirst 関数を使用して要素を追加します。要素をキューの先頭に追加します。3 つの整数要素が追加されます。最後に、キュー全体を出力し、結果は [3, 2, 1] になります。ご覧のとおり、要素は追加された順に先頭から配置されています。
addLast 関数は、キューの最後に要素を追加するために使用されます。たとえば、上記の Deque オブジェクトを引き続き使用し、addLast 関数を使用してキューの最後に要素を追加できます。
deque.addLast(4); deque.addLast(5); deque.addLast(6); System.out.println(deque); //[3, 2, 1, 4, 5, 6]
上記のコードでは、addLast 関数を使用して 3 つの整数要素をキューの末尾に追加します。行列の最後尾。最後に、キュー全体を再度出力すると、結果は [3, 2, 1, 4, 5, 6] になります。ご覧のとおり、新しく追加された要素はキューの最後に順番に配置されます。
加算操作に addFirst 関数と addLast 関数を使用することに加えて、Deque は要素の削除、先頭要素と末尾要素の取得、その他の操作を行うための関数も提供します。たとえば、removeFirst 関数とremoveLast 関数は、それぞれ先頭と末尾から要素を削除できます。 getFirst 関数と getLast 関数は、それぞれ head 要素と tail 要素を取得できます。キューが空の場合、これらの関数は NoSuchElementException をスローします。
Deque を使用する場合は、いくつかの問題に注意する必要があります。まず、Deque はインターフェイスであるため、直接インスタンス化することはできません。したがって、ArrayDeque や LinkedList など、特定のニーズに応じて実装クラスを選択する必要があります。次に、Deque はスレッドセーフではありません。マルチスレッド環境で Deque を使用する場合は、競合状態やデッドロックを回避するための措置を講じる必要があります。最後に、追加および削除操作に Deque を使用する場合は、例外や誤った結果を避けるために、キューがいっぱいであるか空であるかを考慮する必要があります。
つまり、Java の Deque は、便利な両端キュー データ構造を提供します。 Deque の addFirst 関数と addLast 関数を使用すると、キューの両端に要素を簡単に追加できます。 Deque を使用する場合は、スレッド セーフや例外処理などの問題にも注意する必要があります。これらの基本操作をマスターすると、Deque をより適切に使用して両端キューを実装できるようになります。
以上がJava で Deque の addFirst 関数と addLast 関数を使用して deque 操作を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。