[解決済み】.NET HashTable Vs Dictionary - Dictionaryは同じくらい速くできるのか?
質問
DictionaryとHashTableのどちらを使うべきか、そのタイミングと理由を考えています。 ここで少し検索してみたところ、Dictionaryの一般的な利点について話している人がいましたが、私はこれに完全に同意します。
しかし、Dictionaryはオブジェクトを挿入した順番に返すとは限らない、つまりソートされているということも読みました。 一方、HashTableはそうです。 私の理解では、これは状況によってはHashTableの方がはるかに速いということになります。
質問ですが、それはどのような状況なのでしょうか? 私が上記の仮定を誤っているだけなのでしょうか? どのような状況でどちらかを選択するのでしょうか?
解決方法は?
System.Collections.Generic.Dictionary<TKey, TValue>
と
System.Collections.Hashtable
クラスは両方とも内部でハッシュテーブルのデータ構造を保持します。
いずれも項目の順序を保持することを保証しない。
箱詰め・箱出しの問題はさておき、ほとんどの場合、両者は非常に似たパフォーマンスを持っているはずです。
両者の構造上の主な違いは
Dictionary
に依存しています。
連鎖
(ハッシュテーブルのバケットごとにアイテムのリストを保持する) が衝突を解決するのに対し
Hashtable
は
リハッシュ
は、衝突解決(衝突が発生した場合、別のハッシュ関数でキーをバケットにマッピングすることを試みる)のために使用されます。
を使用するメリットはほとんどありません。
Hashtable
クラスは、.NET Framework 2.0+をターゲットにしている場合。によって事実上時代遅れになっています。
Dictionary<TKey, TValue>
.
関連
-
[解決済み】"出力タイプがクラスライブラリのプロジェクトは直接起動できない"
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
-
[解決済み] 与えられたキーがすでに辞書に存在するかどうかをチェックする
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み] 辞書のリストを辞書の値でソートするにはどうしたらいいですか?
-
[解決済み] 辞書から要素を削除する
-
[解決済み] C#でHashtableよりDictionaryが好まれる理由とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】指定されたキャストが有効でない?
-
[解決済み] メンバー '<メンバー名>' にインスタンス参照でアクセスできない
-
[解決済み】ここで「要求URIに一致するHTTPリソースが見つかりませんでした」となるのはなぜですか?
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み】パディングが無効で、削除できない?
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】Microsoft.Extensions.LoggingからILoggerを解決することができない
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である
-
[解決済み] C#でHashtableよりDictionaryが好まれる理由とは?