HashtableとDictionaryの大きな違いは、Hashtableは弱型付けデータ構造なので、どんな型のキーと値も追加できるのに対し、Dictionaryは強型付けデータ構造なので、キーと値ともに指定されたデータ型を満たす要素しか追加できない点です。
ハッシュテーブルとディクショナリーは2つの主要なデータ構造です。
どちらもキーと値のペアでデータを保持することができる。
HashtableやDictionaryは一意なキーしか持てない。
プログラマはキーを使って特定の値を探したり削除したりすることができる。
Hashtableは強型付けされていません。
したがって、プログラマはHashtableに任意のキー・バリュー・ペアの要素を追加することができる。
一方、Dictionaryは強く型付けされている。
プログラマはキーと値のデータ型を指定しなければならない。
指定されたデータ型を満たさない要素を追加することはできない。
例えば、Dictionaryの総型が
Generic Data Typeとは
Genericデータ型とは、クラスやメソッドをプレースホルダーで定義できるデータ型のことです。
C#などのコンパイラーは、コンパイル時にプレースホルダーを指定されたデータ型に置き換えることができる。
汎用的なクラスやメソッドを作成するために使用されます。
汎用クラスを定義する場合、プログラマは角括弧(<>)を使用する必要があります。
この括弧は、クラスやメソッドが汎用型であることを宣言するものです。
ハッシュテーブルとは
Hashtableは、連想配列の抽象データ型を実装したデータ構造であり、キーと値を対応付けることができる構造体です。
一般的なデータ型ではありません。
以下のようなコードを参照ください。
図1:Hashtableを用いたC#プログラム
上のプログラムでは、numbersはHashtable型のオブジェクトです。
Hashtableにはキーと値のペアが追加されています。
15から17までは、キーはint型、値はstring型です。
ステートメント18では、キーと値は文字列です。
Hashtableは週次型付けされたデータ構造です。
したがって、プログラマはHashtableに任意の型のキーと値を追加することができる。
プログラムの出力は上記の通りです。
Hashtableは要素が追加された順番にレコードを出力しない。
したがって、挿入された順番は維持されない。
辞書とは
辞書は、Hashtableの概念を使用しています。
汎用的なデータ型です。
namesはDictionary型のオブジェクトです。
キーと値を格納するための特定のデータ型を持っています。
このプログラムによれば、汎用型は
したがって、dictionaryに要素を追加する場合は、キーと値の両方をstring型にする必要があります。
図3:辞書を用いたC#プログラム
上記の辞書に追加された要素は、すべてString型のキーと値の組を持っています。
キーと値をコンソールに出力すると、図4のような出力が得られます。
Dictionaryから項目を取り出すと、要素が追加されたのと同じ順序でレコードが表示される。
したがって、挿入された順番が維持される。
図4: Dictionaryプログラムの出力
全体として、Dictionaryは実行速度が速いが、スレッドセーフは提供されていない。
ハッシュテーブルと辞書の違い
定義
Hashtableは、連想配列の抽象データ型を実装したデータ構造であり、キーと値を対応付けることができる構造です。
辞書は、Hashtableをベースにしたデータ構造であり、キーに基づいて値を格納する。
要素の追加
さらに、Hashtableは弱型化されたデータ構造です。
したがって、プログラマはHashtableに任意のオブジェクト型のキーと値を追加することができる。
辞書は強型データ構造です。
(<tkey, ###=”” a=” add=” addition,=”” also,=”” and=” between=”” both=”” box=”” but=” can=” code.=” consumes=” data=” dictionary=”” dictionary. =辞書<文字列,=”” 違い=”” 要素=”” 例=”” 実行=”” より速い=”” 一般的な=”” 手から,=”” ハッシュテーブル=” ハッシュテーブル();=”” ハッシュテーブル. =htの新しい実装は、挿入された順に、最小限のメモリを確保し、さらに複数個のメモリを確保することが重要です。
=他のプログラマは、読者に対して安全性を提供し、安全性を確保します。
結論
HashtableとDictionaryの違いは、Hashtableは弱型付けデータ構造なので、どんな型のキーや値でも追加できるのに対し、Dictionaryは強型付けデータ構造なので、キーと値ともに指定したデータ型を満たした要素しか追加できないことである。
,>,>,string>,>のようになります。