dotnet:collection_generic_performance

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
dotnet:collection_generic_performance [2009/03/25 09:45] ともやんdotnet:collection_generic_performance [2019/05/18 02:23] (現在) – 外部編集 非ログインユーザー
行 1: 行 1:
-====== コレクション ジェネリック クラス の性能比較 ======+====== コレクション クラス の性能比較 ====== 
 + 計算量や速度については、[[algorithm:big_o_notation|O-記法と計算量/速度の関係]]を参照のこと。\\
  
-===== O-記法と計算量/速度の関係 ===== +===== System.Collections.Generic 名前空間 ===== 
-^速度^高速  ^^  <  ^  低速^^ +==== Dictionary<TKey, TValue> ====
-^計算量^少ない  ^^  <  ^  多い^^ +
-^記法|O(1)|O(log n)|O(n)|O(n log n)|O(n<sup>2</sup>)| +
-^名称関数|定数|対数|線形|準線形、線形対数|二乗| +
-O-記法については [[http://ja.wikipedia.org/wiki/ランダウの記号|ランダウの記号 - Wikipedia]] を参照のこと。 +
- +
-===== Dictionary<TKey, TValue> =====+
 ^処理^計算量^ ^処理^計算量^
 ^メソッド^^ ^メソッド^^
行 20: 行 15:
 |Item  |O(1)に近い  | |Item  |O(1)に近い  |
  
-===== HashSet<T> =====+==== HashSet<T> ====
 ^処理^計算量^ ^処理^計算量^
 ^メソッド^^ ^メソッド^^
行 30: 行 25:
 |Count  |O(1)  | |Count  |O(1)  |
  
-===== LinkedList<T> =====+==== LinkedList<T> ====
 ^処理^計算量^ ^処理^計算量^
 ^メソッド^^ ^メソッド^^
行 43: 行 38:
 |Count、First、Last  |O(1)  | |Count、First、Last  |O(1)  |
  
-===== List<T> =====+==== List<T> ====
 ^処理^計算量^ ^処理^計算量^
 ^メソッド^^ ^メソッド^^
行 64: 行 59:
 |Item  |O(1)  | |Item  |O(1)  |
  
-===== Queue<T> =====+==== Queue<T> ==== 
 +^処理^計算量^ 
 +^メソッド^^ 
 +|Clear  |O(n)  | 
 +|Contains  |O(n)  | 
 +|Dequeue  |O(1)  | 
 +|Enqueue  |O(n)  | 
 +|Peek  |O(1)  | 
 +|TrimExcess  |O(n)  | 
 +^プロパティ^^ 
 +|Count  |O(1)  | 
 + 
 +==== SortedDictionary<TKey,TValue> ==== 
 +^処理^計算量^ 
 +^メソッド^^ 
 +|Add  |O(log n)  | 
 +|Clear  |O(1)  | 
 +|ContainsKey  |O(log n)  | 
 +|ContainsValue  |O(n)  | 
 +|Remove  |O(log n)  | 
 +|TryGetValue  |O(log n)  | 
 +^プロパティ^^ 
 +|Count  |O(1)  | 
 +|Item  |取得: O(log n)\\ 設定: O(log n)  | 
 + 
 +==== SortedList<TKey,TValue> ==== 
 +^処理^計算量^ 
 +^メソッド^^ 
 +|Add  |未ソートデータ追加: O(n)\\ ソートデータ追加: O(log n)\\ Count > 容量: O(n) - 自動拡張の為 
 +|Clear  |O(n)  | 
 +|ContainsKey  |O(log n)  | 
 +|ContainsValue  |O(n)  | 
 +|IndexOfKey  |O(log n)  | 
 +|IndexOfValue  |O(n)  | 
 +|Remove  |O(n)  | 
 +|RemoveAt  |O(n)  | 
 +|TrimExcess  |O(n)  | 
 +|TryGetValue  |O(log n)  | 
 +^プロパティ^^ 
 +|Count  |O(1)  | 
 +|Item  |取得: O(log n)\\ 設定: O(log n)\\ 未ソートデータ追加: O(n)\\ ソートデータ追加: O(log n)\\ Count > 容量(追加): O(n) - 自動拡張の為 
 + 
 +==== Stack<T> ==== 
 +^処理^計算量^ 
 +^メソッド^^ 
 +|Clear  |O(n)  | 
 +|Contains  |O(n)  | 
 +|Peek  |O(1)  | 
 +|Pop  |O(1)  | 
 +|Push  |O(1)  | 
 +|TrimExcess  |O(n)  | 
 +^プロパティ^^ 
 +|Count  |O(1)  | 
 + 
 +===== System.Collections.Specialized 名前空間 ===== 
 +==== HybridDictionary ====
 ^処理^計算量^ ^処理^計算量^
 ^メソッド^^ ^メソッド^^
行 71: 行 121:
 |  |  | |  |  |
  
-===== SortedDictionary<TKey,TValue> =====+==== ListDictionary ====
 ^処理^計算量^ ^処理^計算量^
 ^メソッド^^ ^メソッド^^
行 78: 行 128:
 |  |  | |  |  |
  
-===== SortedList<TKey,TValue> =====+==== NameObjectCollectionBase ====
 ^処理^計算量^ ^処理^計算量^
 ^メソッド^^ ^メソッド^^
 |  |  | |  |  |
 ^プロパティ^^ ^プロパティ^^
-|Count  |O(1)  | +|  |  |
-|Item  |取得: O(log n)\\ 設定(キー存在): O(log n)\\ 設定(キー未存在):O(n)\\ 追加: O(log n)\\ Count > 容量 追加: O(n)  |+
  
-===== Stack<T> =====+==== NameValueCollection ====
 ^処理^計算量^ ^処理^計算量^
 ^メソッド^^ ^メソッド^^
行 92: 行 141:
 ^プロパティ^^ ^プロパティ^^
 |  |  | |  |  |
 +
 +==== OrderedDictionary ====
 +^処理^計算量^
 +^メソッド^^
 +|  |  |
 +^プロパティ^^
 +|  |  |
 +
 +==== StringCollection ====
 +^処理^計算量^
 +^メソッド^^
 +|  |  |
 +^プロパティ^^
 +|  |  |
 +
 +==== StringDictionary ====
 +^処理^計算量^
 +^メソッド^^
 +|Add  |O(1)  |
 +|Clear  |O(n)  |
 +|ContainsKey  |O(1)  |
 +|ContainsValue  |O(n)  |
 +|CopyTo  |O(n)  |
 +|GetEnumerator  |O(1)  |
 +|Remove  |O(1)  |
 +^プロパティ^^
 +|Count  |O(1)  |
 +|Item  |O(1)  |
 +|Keys  |O(1)  |
 +|Values  |O(1)  |
  • dotnet/collection_generic_performance.1237941954.txt.gz
  • 最終更新: 2019/05/18 02:23
  • (外部編集)