List

List

 >> NGL >> リファレンス >> Containerカテゴリ >> Containerのクラス >> List

言語: Visual Basic    C#

最終更新日付:2012/06/29 8:23:39

説明

List は双方向リンクドリストを使用したコンテナです。シーケンスの両端に自由に要素を追加できるほか、定数時間で要素の挿入、削除を行うことができます。

 

Listの特徴

ここでは、List クラスの特徴について説明します。各コンテナの特徴を比較した表は「時間計算量について」をご覧下さい。

両端での要素の追加・削除が定数時間で行える

List は、シーケンスの両端での追加・削除を定数時間で実行します。このため、List はスタックやキューの実装に利用できます。ListQueue コンテナアダプタがバインドするクラスとして適しています。

シーケンス中央での挿入・削除も定数時間で行える

List はシーケンス中央(つまり、両端でない場所)での要素の追加・削除も定数時間で実行します。

挿入・削除後も既存反復子が無効にならない

List は要素を挿入・削除しても既存の要素を指していた反復子を無効にしません。もちろん、要素が削除された場合は、削除された要素を指していた反復子は無効になります。

任意の要素へのアクセスに線形時間を要する

List はランダムアクセスコンテナではありません。インデックスを指定しての要素の取得・設定には線形時間を要します。また、インデックス指定のメソッドは直接サポートされないため、n 番目の要素を参照したければ、先頭の反復子を取得して n 回インクリメントするしかありません。

要素の検索にも線形時間を要する

List は線形コンテナですから、要素の検索には総当りで臨むしかありません。つまり、検索にも線形時間を要します。

 

こうして見ると、List は追加・削除・挿入には強いものの、検索やアクセスに線形時間を要するということになります。そう考えると、このコンテナは頻繁に挿入・削除が行われる局面での使用が向いているということになるのですが、さらに言うならば、挿入・削除後も反復子を無効にしないような特性が求められる局面が特に向いているといえます。いずれにしろ検索やランダムアクセスには弱いため、高速な処理が求められる場合は他のコンテナを選ぶべきです。

 

IEnumerable(Of T) をサポート

List は IEnumerable(Of T) インターフェースを実装しています(ここで、T はコンテナが格納する要素の型です)。そのため、For Each 構文を利用して要素の反復を行うことができます。

IEnumerable<T> をサポート

List は IEnumerable<T> インターフェースを実装しています(ここで、T はコンテナが格納する要素の型です)。そのため、foreach 構文を利用して要素の反復を行うことができます。

ページトップへ

 

Listの反復子

List クラスは双方向反復子をサポートします。双方向反復子に関する詳細はBidirectionalIterator を参照してください。

ページトップへ

 

メソッド一覧

List クラスのメソッドの一覧を以下に示します。メソッド名をクリックすると、各メソッドの詳細がご覧になれます。また、各コンテナがサポートするメソッドの一覧は「コンテナのメソッド」 をご覧下さい。

コンストラクタ

メソッド 説明
New いくつかの方法でコンテナオブジェクトを作成します。
メソッド 説明
List いくつかの方法でコンテナオブジェクトを作成します。

参照・設定 

メソッド 説明
Front シーケンスの先頭要素の値を取得/設定します
Back シーケンスの最後の要素の値を取得/設定します

追加・取出

メソッド 説明
PushBack シーケンスの末尾に要素を追加します
PushFront シーケンスの先頭に要素を追加します
PopBack シーケンスの末尾から要素を取り除きます
PopFront シーケンスの先頭から要素を取り除きます

反復子

メソッド 説明
Begin シーケンスの先頭を指す反復子を返します
End シーケンスの終端を指す反復子を返します
RBegin 逆シーケンスの先頭を指す逆方向反復子を返します
REnd 逆シーケンスの末尾を指す逆方向反復子を返します

挿入・削除

メソッド 説明
Insert シーケンスの指定した位置に要素を挿入します
Erase シーケンスの指定した位置から要素を取り除きます
Clear シーケンス内の要素を全て取り除きます
Remove シーケンス内から特定の値を持つ要素を全て取り除きます
RemoveIf シーケンス内から条件を満たす要素を全て取り除きます
Unique シーケンス内から隣接する等しい要素を取り除きます

サイズ

メソッド 説明
Empty 空シーケンスかどうかを返します
Size シーケンスが管理する要素の個数を返します
Resize シーケンスが管理する要素の個数を設定します
MaxSize 管理可能な要素の最大数を返します

置き換え・連結

メソッド 説明
Assign シーケンスを指定した別のシーケンスで置き換えます
Swap 別の List オブジェクトと管理シーケンスを交換します
Splice 他の List オブジェクトからシーケンス(の一部)を移動します
Merge 他のソート済み List をマージします。

並び換え

メソッド 説明
Reverse シーケンスの並び順を逆転させます。
Sort シーケンスをソートします。

比較

メソッド 説明
IsEqual 他の List オブジェクトと等しいかどうか調べます。
Compare 他の List オブジェクトと辞書順比較をします。

ページトップへ

 

 


Copyright(C) 2011-2012 Show MATSUOKA.
Powered by Prefab.