HashMap と HashSet: 違いと比較

HashMap と HashSet は、Hashtable の XNUMX つの異なる関数です。 ハッシュテーブルは、キー値をマッピングできるデータ構造に他なりません。

ハッシュ関数は Hashtable の主要なものです。 ハッシュ テーブルの主な利点は、他のデータ構造と比較した場合の速度です。

主要な取り組み

  1. HashMap はキーと値のペアを格納するデータ構造ですが、HashSet は値が関連付けられていない一意の要素を格納します。
  2. HashMap は Map インターフェースを実装し、HashSet は Java で Set インターフェースを実装します。
  3. HashSet は HashMap によって支えられており、キーにダミー値を使用して一意の要素のコレクションを維持します。

HashMap と HashSet

HashMap は、キー値ベースのデータ構造であり、これを使用してオブジェクトを保存および取得できます。 一意のキー. HashSet は、一意のオブジェクトのコレクションを格納するために使用されるセットベースのデータ構造であり、ハッシュを使用してオブジェクトを格納し、一定時間のパフォーマンスを提供します。

HashMap と HashSet

ハッシュマップ 配列データ型の連想です。 これは Java コレクションの一部です。 このクラスは、パッケージまで Java で見つけることができます。

これは Java のマップ インターフェイスで実装できます。ここでは、データを (KEY, VALUE) に格納します。これは、値を格納し、キーによってアクセスするために使用されます。

オブジェクトを渡すと、インデックスであるキー値でアクセスできます。 キーが重複していることを確認できますが、これはキーに対応する前の要素を意味します。

null キーも格納されます。 ハッシュマップ. HashMap は XNUMX つの null キーのみを許可します。

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 で作成できます。

また読む:  Microsoft ユニファイド サポートとプレミア サポート: 違いと比較

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 つのセットの差を計算できます。

また読む:  ExtJS と jQuery: 違いと比較

Subset では、contains-all() メソッドを使用して、別のセットの別のサブセットを追加できます。 値を追加したり、HashSet に値を挿入したりする場合、コードに基づいて挿入される順序にすることはできません。

要素への反復は特定の順序で返されません。 キーに関連付けられたデータが格納されているインデックスを使用することもできます。

ほとんどの場合、セットからランダムな要素にアクセスするためにハッシュセットを使用できます。 ハッシュコードを介してアクセスされるため、一意であるため、要素を簡単に識別できます。

非同期ではないため、複数の脅威に同時にアクセスし、変更することができます。 これは、セット内の XNUMX つのオブジェクトを同期することによって実現されます。

アセットまたは実際のオブジェクトの値は、文字列型のオブジェクトを作成でき、指定したクラスにラップできます。 時間の複雑さを制限するために整数をオブジェクトとして格納する場所。

HashMap と HashSet の主な違い

  1. HashMap では追加時のオブジェクト要件は XNUMX つですが、HashSet では追加時のオブジェクト要件は XNUMX つだけです。
  2. HashMap には任意の数の null 値がありますが、HashSet には XNUMX つの null 値しかありません。
  3. キーと値のペアは HashMap に格納されますが、オブジェクトは HashSet に格納されます。
  4. Hashmap と比較すると、HashSet はデータの一意性のために使用されます。
  5. HashMapの例は {a->4, b->9, c->5}、および HashSet の例は次のとおりです。 {6、43、2、90、4}。
参考文献
  1. https://dl.acm.org/doi/abs/10.1145/2884781.2884869?casa_token=1z9VmoTZC90AAAAA:8-pUqjpp5C0S4rIzg2sMUI4FeuvVH5QIN99WkbSrP1HSwCa13CtZa7lXBKMzm864NI__H8iKBcjMZck
  2. https://ieeexplore.ieee.org/abstract/document/5370764/

最終更新日 : 13 年 2023 月 XNUMX 日

ドット1
XNUMXつのリクエスト?

私はあなたに価値を提供するために、このブログ記事を書くことに多大な努力を払ってきました. ソーシャルメディアや友人/家族と共有することを検討していただければ、私にとって非常に役立ちます. 共有は♥️

コメント

後で読むためにこの記事を保存しますか? 右下のハートをクリックして自分の記事ボックスに保存!