ホームページ  >  記事  >  Java  >  HashTable は Java でどのように機能しますか?

HashTable は Java でどのように機能しますか?

王林
王林転載
2023-08-19 18:53:081107ブラウズ

HashTable は Java でどのように機能しますか?

Hashtable クラスは、その要素をキーと値のペアでハッシュ テーブルに保存する Java コレクション フレームワークの一部です。キーは、フェッチおよび受信に使用できるオブジェクトです。値が関連付けられています。ハッシュ テーブルと HashMapclass の間にはいくつかの類似点がありますが、ハッシュ テーブルは同期されます。また、そのキーは値に関連付けられている必要があり、null にすることはできません。この記事は、ハッシュ テーブルが Java の内部でどのように機能するかを説明することを目的としています。

Java での Hashtable の仕組み

ハッシュテーブルはバケットの配列として考えることができ、各バケットにはエントリのリストが含まれます。エントリはキーと値で構成されます。キーと、そのキーに関連付けることができる値を指定します。次に、キーがハッシュ化されてハッシュ コードが生成され、このコードは値が格納されるテーブル内のインデックスとしてさらに使用されます。ハッシュ コードから値の位置を取得するのに役立つ関数は、ハッシュ関数と呼ばれます。常にハッシュ コードと呼ばれる正の整数値を返します。複数のオブジェクトは、「equals()」と呼ばれる組み込みメソッドによる評価後に同じ整数値を取得する場合があります。ただし、類似したオブジェクトは常に同じハッシュ コードを持ちます。

インデックスを割り当てる式

indexNumber = ハッシュ番号 % totalBuckets

ここで、「%」は剰余を返すモジュロ演算子です

上記の式の使用法を示す例を示します -

Q. ハッシュ値が 17 で合計が 17 である XYZ という名前の要素を取得するとします。 利用可能なバケットは 5 です。次に、どのインデックス番号に格納されるかを調べますか?

Solution − 17 % 5 = 2 したがって、インデックス番号 2 が取得されます。

ハッシュテーブルの衝突

前に説明したように、複数のオブジェクトが同じハッシュコードを取得する可能性があり、衝突と呼ばれる状況が発生します。これは、2 つ以上のキーが同じハッシュ値を持ち、同じバケットにマッピングされている場合に発生し、その結果パフォーマンスが低下します。機能上の混乱を引き起こします。

ハッシュテーブルを宣言するための構文

リーリー ###方法###

    最初のステップは、Hashtable クラスを使用できるように「java.util」パッケージをインポートすることです。
  • Hashtable クラスのインスタンスを定義し、 「put()」という名前の組み込みメソッド。
  • 次に、for-each ループを使用し、その中で「keySet()」メソッドを使用してすべてのキーにアクセスします。
  • キーに関連付けられた値。

  • 例 1

次の例は、Java でハッシュテーブルを実装する方法を示しています。

リーリー ###出力### リーリー

例 2

次の例では、組み込みメソッド「get()」を使用してハッシュテーブルの値を取得します。このメソッドはキーを受け取り、対応する値を返します。

リーリー ###出力### リーリー ###結論は###

この記事は、Hashtable クラスを定義することから始め、次のセクションでは、例を通じて Hashtable クラスが内部的にどのように機能するかを説明しました。その後、Java サンプル プログラムを通じて Hashtable の実際の実装について説明しました。

以上がHashTable は Java でどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。