PR

 キューを扱うにはQueueクラスを利用する。キューとは,先入れ先出し型の配列である。Queueオブジェクトの容量とは,Queueオブジェクトが保持できる要素数である。Queueオブジェクトの容量のデフォルトの初期値は32である。

 Queueオブジェクトに要素を追加すると,必要に応じて容量が自動的に増加する。だが,要素を削除しても,そのままでは容量は変わらない。容量を減らすには,TrimToSizeメソッドを呼び出す。

 増加率は,容量を増やす必要がある場合に,現在の容量に掛け合わせる数値である。増加率は,Queueオブジェクトが生成された時点で決まる。デフォルトの増加率は2.0である。

 Queueオブジェクトにはnull参照も格納でき,さらに要素の重複も許可する。

サンプルコードを見る


名前空間
System.Collections
対応バージョン
.NET Framework 2.0,1.1,1.0
.NET Compact Framework 2.0,1.0
主なプロパティ
Count
Queueオブジェクトに格納されている要素の数を取得する。

IsSynchronized
Queueオブジェクトへのアクセスが同期されている(スレッド・セーフである) かどうかを示す値を取得する。アクセスが同期されている(スレッド・セーフである)場合はTrue,それ以外の場合はFalseを返す。デフォルトはFalseである。

主なメソッド
Clear
Queueオブジェクトからすべてのオブジェクトを削除する。だが,容量は変化しない。容量を小さくするには,TrimToSizeメソッドを呼び出す。

Clone
Queueオブジェクトの簡易コピーを作成する。簡易コピーによってコピーされるのはQueueオブジェクトの要素だけである。Queueオブジェクトの各要素が参照しているオブジェクトはコピーされない。つまり,コピーされた新しいQueueオブジェクトの要素の参照先は,元のQueueオブジェクトの要素の参照先と同じオブジェクトになる。

Contains
引数に指定したオブジェクトが,Queueオブジェクト内に存在するかどうかを調べる。引数に指定したオブジェクトがQueueオブジェクト内に存在する場合はTrue,それ以外の場合はFalseを返す。

CopyTo
Queueオブジェクトの要素を既存の1次元配列にコピーする。コピー元のQueueオブジェクトの要素数が,コピー先の配列に格納できる要素の数を超えている場合,ArgumentException例外が発生する。

Dequeue
Queueオブジェクトの先頭にあるオブジェクトを返し,そのオブジェクトをQueueオブジェクト内から削除する。Queueオブジェクトが空の場合は,InvalidOperationException例外が発生する。Peekメソッドとの違いは,このメソッドが返したオブジェクトを削除することである。

Enqueue
Queueオブジェクトの末尾に,引数に指定したオブジェクトを追加する。null参照も追加できる。必要に応じてQueueオブジェクトの容量が増加する。

Peek
Queueの先頭にあるオブジェクトを返す。そのオブジェクトを削除しない。Queueオブジェクトが空の場合は,InvalidOperationException例外が発生する。Dequeueメソッドとの違いは,このメソッドが返したオブジェクトを削除しないことである。

Synchronized
同期されている(スレッド・セーフな)Queueラッパーを返す。

ToArray
Queueオブジェクトの要素を,新たに作成した配列にコピーし,その配列を返す。

TrimToSize
容量をQueueオブジェクト内にある実際の要素数に設定する。Dequeueメソッドなどを呼び出してQueueオブジェクト内の要素が削除されても,そのままではQueueオブジェクトの容量は変わらない。容量を削減するときには,TrimToSizeメソッドを呼び出す。