知っていると便利な章
4.7. Queue
Collectionを拡張して要素の「キュー操作」を可能にしたものです。
『JDK7 API Javadoc より抜粋』---
処理の前に要素を保持するために設計されたコレクション。 基本的な Collection オペレーションだけでなく、キューは追加の挿入、抽出、および検査オペレーションを提供します。
---
Queueインターフェースでは、Collectionインターフェースの要素の挿入(add)、抽出(remove)、検査(element)を操作するメソッド以外に offer、poll、peekメソッドが定義されています。
これら3つのメソッドは操作失敗時に例外ではなく、戻り値で失敗を伝えます。
キューの容量が限られており、要素の操作失敗が通常のオペレーションで想定される場合はoffer、poll、peekメソッドを使うといいでしょう。
以下のクラスは Queue インターフェースを実装しているクラスです。
LinkedList
通常のリンクリストです。
Listでも紹介しましたが、LinkedListはQueueインターフェースも実装しています。
add、remove、element、(offer、poll、peek)メソッドのみを使用すればLinkedListをFIFOキューとして使うことができます。
また、他のメソッドを使用することによりLIFOキュー(スタック)、両端キュー(デック)としても使うことができます。
ArrayDeque
配列で実装された両端キュー(デック)です。
キューとして使用する場合、要素の挿入(add)はLinkedListよりも高速ですが、要素の抽出(remove)は要素数に比例する時間がかかります。
LinkedListと違い、nullを要素として挿入することはできません。
PriorityQueue
優先度つきキューです。
順序付けはコンストラクタにComparatorが渡された場合はそのComparatorを使って行われます。 コンストラクタにComparatorが渡されない場合は要素の自然順序付けによって行われます。
このように使います。
Queue<String> strings = new LinkedList<>(); // キューに要素を追加 strings.add("あ"); strings.add("い"); strings.add("う"); // キューから要素を抽出 "あ"が抽出される。 String s = strings.remove(); // キューの要素の存在を確認 "い"が確認される。 s = strings.element();< 前のページへ 次のページへ >
-
IS 559680 / ISO27001
認証範囲 本社、芝大門オフィス情報セキュリティ基本方針 -
個人情報保護方針
個人情報の取扱いについて
保有個人データ又は
第三者提供記録に関する
事項の周知について
特定個人情報の取扱いについて -
FS 671851 / ISO9001
認証範囲 本社、芝大門オフィス品質方針