ハッシュテーブルと辞書の違いとは?分かりやすく解説!

この記事には、アフィリエイト広告を利用しています。

スポンサーリンク

HashtableとDictionaryの大きな違いは、Hashtableは弱型付けデータ構造なので、どんな型のキーと値も追加できるのに対し、Dictionaryは強型付けデータ構造なので、キーと値ともに指定されたデータ型を満たす要素しか追加できない点です。

ハッシュテーブルとディクショナリーは2つの主要なデータ構造です。

どちらもキーと値のペアでデータを保持することができる。

HashtableやDictionaryは一意なキーしか持てない。

プログラマはキーを使って特定の値を探したり削除したりすることができる。

Hashtableは強型付けされていません。

したがって、プログラマはHashtableに任意のキー・バリュー・ペアの要素を追加することができる。

一方、Dictionaryは強く型付けされている。

プログラマはキーと値のデータ型を指定しなければならない。

指定されたデータ型を満たさない要素を追加することはできない。

例えば、Dictionaryの総型がの場合、プログラマはint型のキーとstring型の値を持つ要素のみを追加することができる。

スポンサーリンク

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から項目を取り出すと、要素が追加されたのと同じ順序でレコードが表示される。

したがって、挿入された順番が維持される。

Main Difference - Hashtable vs 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>,>のようになります。

タイトルとURLをコピーしました