SortedList<>、SortedDictionary<>、Dictionary<> 質問する

SortedList<>、SortedDictionary<>、Dictionary<> 質問する

私はそれを見つけてSortedList<TKey, TValue> SortedDictionary<TKey, TValue>Dictionary<TKey, TValue>同じインターフェースを実装します。

  1. SortedListいつとを選択すべきでしょうSortedDictionaryDictionary?
  2. アプリケーションの観点から見たSortedListとの違いは何ですか?SortedDictionary

ベストアンサー1

  1. どちらかの要素を反復処理すると、要素はソートされます。 の場合はそうではありませんDictionary<T,V>

  2. マイクロソフトSortedList<T,V>との違いについて説明しますSortedDictionary<T,V>

SortedDictionary(TKey, TValue)ジェネリッククラスは二分探索木O(log n) の検索で、n は辞書内の要素数です。この点では、SortedList(TKey, TValue) ジェネリック クラスに似ています。2 つのクラスは同様のオブジェクト モデルを持ち、どちらも O(log n) の検索が可能です。2 つのクラスの違いは、メモリの使用と挿入および削除の速度です。

SortedList(TKey, TValue) は、SortedDictionary(TKey, TValue) よりもメモリを少なく使用します。

SortedDictionary(TKey, TValue) では、ソートされていないデータの挿入および削除操作が高速化されます。SortedList(TKey, TValue) の O(n) に対して、O(log n) です。

リストがソートされたデータから一度にすべて設定される場合は、SortedList(TKey, TValue) の方が SortedDictionary(TKey, TValue) よりも高速です。

おすすめ記事