キーの違い:コンピュータサイエンスでは、hashTableまたはhashMapは、キー(名前)と値(属性)を関連付けるデータ構造を表します。 Javaでは、HashTableは同期化され、HashMapは同期化されていないなど、この2つにはいくつか重要な違いがあります。 HashTableはnullキーを許可しません。 ただし、HashMapでは、単一のNULLキーと任意の数のNULL値を使用できます。
HashMapとhashTableは、Javaコレクションの一部であるデータ構造です。 オブジェクトを格納するためにキーと値のペアを使用します。 どちらもjava.util.Mapインタフェースを実装し、ハッシングの原則に基づいて動作するなど、いくつかの類似点を共有しています。 しかし、Javaプログラミング言語との関連でそれらを参照すると、両者には多くの違いがあります。
hashTableは、キーを使用して値を格納および取得するために使用されます。 このためには、キーは一意でなければなりません。 キーと値のペアを格納するために使用されるテーブルは、ハッシュテーブルと呼ばれます。 ハッシュテーブルは、キーをハッシュするアルゴリズムを使用して形成されます。 このハッシュ関数は、入力データに番号を割り当てるために使用され、そのデータは計算または評価された番号に対応する配列インデックスとして格納されます。
HashMapとHashTableの比較
ハッシュマップ | ハッシュ表 | |
同期 | 非同期です | 同期している(スレッドセーフ) |
NULL値 | キーと値としてnull値を許可します | nullを許可しません |
javaの紹介 | Javaバージョン1.2 | Java開発キットの最初のバージョン |
パフォーマンス | 比較的良い | 比較的悪い |
広がる | AbstractMapクラスを拡張します | なかなか古いDictionaryクラスを継承 |
キーの繰り返し | 反復子はキーを反復するために使用されます | 列挙インターフェースはキーの繰り返しに使用されます |
アプリケーション | 非スレッドアプリケーションに向いている | 通常、マルチスレッドアプリケーションに安全 |
直列化 | 直列化されていません | 直列化 |
代替案 | マルチスレッド環境では、並行ハッシュマップを使用できます。 | そのような代替手段はありません |