HashMap と HashSet は、Hashtable の XNUMX つの異なる関数です。 ハッシュテーブルは、キー値をマッピングできるデータ構造に他なりません。
ハッシュ関数は Hashtable の主要なものです。 ハッシュ テーブルの主な利点は、他のデータ構造と比較した場合の速度です。
主要な取り組み
- HashMap はキーと値のペアを格納するデータ構造ですが、HashSet は値が関連付けられていない一意の要素を格納します。
- HashMap は Map インターフェースを実装し、HashSet は Java で Set インターフェースを実装します。
- HashSet は HashMap によって支えられており、キーにダミー値を使用して一意の要素のコレクションを維持します。
HashMap と HashSet
HashMap は、キー値ベースのデータ構造であり、これを使用してオブジェクトを保存および取得できます。 一意のキー. HashSet は、一意のオブジェクトのコレクションを格納するために使用されるセットベースのデータ構造であり、ハッシュを使用してオブジェクトを格納し、一定時間のパフォーマンスを提供します。

ハッシュマップ 配列データ型の連想です。 これは Java コレクションの一部です。 このクラスは、パッケージまで Java で見つけることができます。
これは Java のマップ インターフェイスで実装できます。ここでは、データを (KEY, VALUE) に格納します。これは、値を格納し、キーによってアクセスするために使用されます。
オブジェクトを渡すと、インデックスであるキー値でアクセスできます。 キーが重複していることを確認できますが、これはキーに対応する前の要素を意味します。
null キーも HashMap に格納されます。HashMap では null キーを 1 つだけ許可します。
HashSet には一意のコレクションが含まれています。 このクラスは、パッケージまで Java で見つけることができます。
ハッシュと呼ばれるメカニズムを使用して情報をハッシュテーブルに格納します。テーブル内の要素は、ハッシュテーブルのデータ構造の基礎となるセットインターフェイスを使用して実装されたクラスであるハッシュコードと呼ばれる一意の値によってアクセスされます。
値の重複は許可されませんが、ダミーの値を使用できます。 主な利点は、シリアル化およびクローン化可能なインターフェースにできることです。
比較表
比較のパラメータ | ハッシュマップ | ハッシュセット |
---|---|---|
ダミー値 | HashMap にはダミー値がありません | HashSet にはダミーの値があります |
追加機構 | HashMap はハッシュ技術を使用します | HashSet はハッシュ オブジェクトを使用します |
速度 | HashMap は高速です | HashSet が遅い |
挿入方法 | HashMap の挿入メソッドは Put() です | HashSet の挿入メソッドは Add() です |
例 | (a-10、b-20、c-70) | (10,20,70) |
ハッシュマップとは?
Hashmap は、メソッド (Hash Map) を使用して実装できます。 hm = 新しいハッシュマップ();)。 指定された初期容量と負荷係数は、たとえば HashMap で作成できます。
HashMap は、さまざまな方法で値を格納できます。 文字列をキーとして格納します。 HashMap では、キー値はオブジェクトと見なされます。 主なタスクは、kay 値またはオブジェクトを使用してテーブルを編成することです。 整理にかかる時間は O(1) 時間です。
ハッシュマップの強みとして柔軟なKeysなので。 これらは配列に似ていますが、データにアクセスするために使用される「インデックス」がありますが、ハッシュ マップでは、値にアクセスするためにキーを使用します。
要素の追加、要素へのアクセス、要素の変更、要素の削除など、HashMap の基本的な操作がいくつかあります。
要素を追加するには put() メソッドを使用し、要素にアクセスするには get() メソッドを使用し、要素を変更するには replace() メソッドを使用し、要素を削除するには remove() メソッドを使用します。
同様に、clear、compute、merge、clone、size などの多くのコマンドとメソッドがあり、プログラマーが HashMap を効果的に使用するのに役立ちます。
ハッシュセットとは?
HashSet は、構文 (Hash Set< E> hs = new Hash Set< E>();) によって実装できます。この構文は、定義せずにハッシュ セットの容量を定義します。デフォルト値は 16 で、負荷係数は 0.75 です。
HashSet(int capacity, float fill Ratio) は、ハッシュセットの容量を変更するために使用されます。要素が大きい場合、セットに値を格納する容量が必要になるため、セットが拡張されます。
add、remove、contains、size などの基本的な操作は同じですが、基本的な操作の時間パフォーマンスは一定です。
セットには、ユニオンセット、セットの違いなどの他のさまざまな操作がある場合、サブセットにはハッシュセットメソッドの利点があります。
セットの結合では、 add-all() メソッドを使用して、XNUMX つのセット間の結合操作を実行できます。 セットの差では、remove-all() メソッドを使用して XNUMX つのセットの差を計算できます。
Subset では、contains-all() メソッドを使用して、別のセットの別のサブセットを追加できます。 値を追加したり、HashSet に値を挿入したりする場合、コードに基づいて挿入される順序にすることはできません。
要素への反復は特定の順序で返されません。 キーに関連付けられたデータが格納されているインデックスを使用することもできます。
ほとんどの場合、セットからランダムな要素にアクセスするためにハッシュセットを使用できます。 ハッシュコードを介してアクセスされるため、一意であるため、要素を簡単に識別できます。
非同期ではないため、複数の脅威に同時にアクセスし、変更することができます。 これは、セット内の XNUMX つのオブジェクトを同期することによって実現されます。
アセットまたは実際のオブジェクトの値は、文字列型のオブジェクトを作成でき、指定したクラスにラップできます。 時間の複雑さを制限するために整数をオブジェクトとして格納する場所。
HashMap と HashSet の主な違い
- HashMap では追加時のオブジェクト要件は XNUMX つですが、HashSet では追加時のオブジェクト要件は XNUMX つだけです。
- HashMap には任意の数の null 値がありますが、HashSet には XNUMX つの null 値しかありません。
- キーと値のペアは HashMap に格納されますが、オブジェクトは HashSet に格納されます。
- Hashmap と比較すると、HashSet はデータの一意性のために使用されます。
- HashMapの例は {a->4, b->9, c->5}、および HashSet の例は次のとおりです。 {6、43、2、90、4}。