Hashtable クラスは、その要素をキーと値のペアでハッシュ テーブルに保存する Java コレクション フレームワークの一部です。キーは、フェッチおよび受信に使用できるオブジェクトです。値が関連付けられています。ハッシュ テーブルと HashMapclass の間にはいくつかの類似点がありますが、ハッシュ テーブルは同期されます。また、そのキーは値に関連付けられている必要があり、null にすることはできません。この記事は、ハッシュ テーブルが Java の内部でどのように機能するかを説明することを目的としています。
ハッシュテーブルはバケットの配列として考えることができ、各バケットにはエントリのリストが含まれます。エントリはキーと値で構成されます。キーと、そのキーに関連付けることができる値を指定します。次に、キーがハッシュ化されてハッシュ コードが生成され、このコードは値が格納されるテーブル内のインデックスとしてさらに使用されます。ハッシュ コードから値の位置を取得するのに役立つ関数は、ハッシュ関数と呼ばれます。常にハッシュ コードと呼ばれる正の整数値を返します。複数のオブジェクトは、「equals()」と呼ばれる組み込みメソッドによる評価後に同じ整数値を取得する場合があります。ただし、類似したオブジェクトは常に同じハッシュ コードを持ちます。
indexNumber = ハッシュ番号 % totalBuckets
ここで、「%」は剰余を返すモジュロ演算子です
上記の式の使用法を示す例を示します -
Q. ハッシュ値が 17 で合計が 17 である XYZ という名前の要素を取得するとします。 利用可能なバケットは 5 です。次に、どのインデックス番号に格納されるかを調べますか?
Solution − 17 % 5 = 2 したがって、インデックス番号 2 が取得されます。
前に説明したように、複数のオブジェクトが同じハッシュコードを取得する可能性があり、衝突と呼ばれる状況が発生します。これは、2 つ以上のキーが同じハッシュ値を持ち、同じバケットにマッピングされている場合に発生し、その結果パフォーマンスが低下します。機能上の混乱を引き起こします。
キーに関連付けられた値。
リーリー ###出力### リーリー
例 2以上がHashTable は Java でどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。