SortedList コレクション型と SortedDictionary コレクション型

更新 : 2007 年 11 月

System.Collections.SortedList クラス、System.Collections.Generic.SortedList<TKey, TValue> ジェネリック クラス、および System.Collections.Generic.SortedDictionary<TKey, TValue> ジェネリック クラスは、IDictionary インターフェイスを実装する点において Hashtable クラスと Dictionary<TKey, TValue> ジェネリック クラスに似ていますが、キーによる並べ替え順序で自身の要素を維持し、ハッシュ テーブルの O(1) 挿入と取得の特性はありません。この 3 つのクラスには、次のような共通の特徴があります。

次の表に、2 つの並べ替えリスト クラスと SortedDictionary<TKey, TValue> クラスの違いを示します。

SortedList 非ジェネリック クラスと SortedList<TKey, TValue> ジェネリック クラス

SortedDictionary<TKey, TValue> ジェネリック クラス

キーと値を返すプロパティにはインデックスが付けられるため、インデックスを使用して効率的に取得できます。

インデックスを使用して取得することはできません。

取得は O(log n) です。

取得は O(log n) です。

挿入と削除は一般に O(n) ですが、既に並べ替えられているデータの挿入は O(1) のため、各要素はリストの最後に追加されます。これは、サイズを変更する必要がないことを前提にしています。

挿入と削除は O(log n) です。

SortedDictionary<TKey, TValue> より使用するメモリが少なくなります。

SortedList 非ジェネリック クラスと SortedList<TKey, TValue> ジェネリック クラスより多くのメモリを使用します。

メモ :

対応するキーを含む値 (従業員 ID 番号を含む従業員レコードなど) に対しては、KeyedCollection<TKey, TItem> ジェネリック クラスから派生することによってリストの特性と辞書の特性を合わせ持つキー付きのコレクションを作成できます。

参照

参照

System.Collections.SortedList

System.Collections.Generic.SortedList<TKey, TValue>

System.Collections.IDictionary

System.Collections.Generic.IDictionary<TKey, TValue>

その他の技術情報

一般的に使用されるコレクション型