logo

JavaのHashSetとHashMapクラスの違い

ハッシュマップ そして ハッシュセット Java では、最も人気のある Collection クラスです。どちらもデータ構造に使用されます。次の表では、HashMap と HashSet の違いを説明します。

基礎 ハッシュマップ ハッシュセット
意味 Java HashMap は、Map インターフェイスのハッシュ テーブル ベースの実装です。 HashSet はセットです。ストレージにハッシュ テーブルを使用するコレクションを作成します。
実装 HashMap の実装 マップ、クローン可能、およびシリアル化可能 インターフェイス。 HashSet の実装 セット、クローン可能、シリアル化可能、反復可能 そして コレクション インターフェース。
店舗 HashMap には、 キーと値のペア 。キーと値のマッピングを維持します。 HashSet には、 オブジェクト
重複した値 許可されません 重複キー 、 しかし 重複した値許可された 許可されません 重複した値
Null値 含まれる場合があります 単一のヌルキー そして 複数の null 値 含まれる可能性があります 単一の null 値
挿入方法 HashMap は 置く() HashMap に要素を追加するメソッド。 HashSet は、 追加() HashSet に要素を追加するメソッド。
パフォーマンス ハッシュマップは もっと早く/ 値が一意のキーに関連付けられているため、HashSet よりも優れています。 ハッシュセットは もっとゆっくり これは、メンバー オブジェクトがハッシュコード値の計算に使用され、2 つのオブジェクトで同じ値になる可能性があるためです。
オブジェクトの数 のみ 1つ オブジェクトは追加操作中に作成されます。 がある put 操作中に作成されたオブジェクト (1 つは そして1つは 価値
収納機構 HashMap が内部で使用する ハッシュ化 オブジェクトを保管するため。 HashSet は内部で使用します。 ハッシュマップ オブジェクトを保存するオブジェクト。
用途 メンテナンスを行わない場合は常に優先されます。 独自性 を維持する必要がある場合に使用されます。 独自性 データの。
{a->4、b->9、c->5} どこ a、b、cキー そして 4、9、5価値観 キーに関連付けられています。 {6、43、2、90、4} 集合を表します。

プログラムを通して違いを理解しましょう。

ハッシュマップの例

次の例では、同じキーと異なる値を持つ重複要素を追加すると、キーの前の値が新しい値に置き換えられます。

同じキーと同じ値を持つ重複要素を追加すると、キーと値のペアは 2 回目は保存されません。

 import java.util.*; public class HashMapExample { public static void main(String args[]) { //creating object of HashMap HashMap hm= new HashMap(); //adding key-value pair hm.put('John', 23); hm.put('Monty', 27 ); hm.put('Richard', 21); hm.put('Devid', 19); System.out.println('Before adding duplicate keys: '); System.out.println(hm); //adding duplicate keys hm.put('Monty', 25); //replace the Monty's previous age hm.put('Devid', 19); System.out.println('After adding duplicate keys: '); System.out.println(hm); } } 

出力:

JavaのHashSetとHashMapクラスの違い

ハッシュセットの例

次の例では、重複する値は HashSet に保存されず、null 値は 1 回だけ保存されることがわかります。

 import java.util.*; public class HashSetExample { public static void main(String args[]) { //creating object of HashSet HashSet hs= new HashSet(); //adding values to HashSet hs.add('Java'); hs.add('Python'); hs.add('C++'); hs.add('C'); System.out.println('Before adding duplicate and null values: '); System.out.println(hs); //adding duplicate values hs.add('Python'); hs.add('C'); System.out.println('After adding duplicate values: '); System.out.println(hs); //adding null values hs.add(null); hs.add(null); System.out.println('After adding null values: '); System.out.println(hs); } } 

出力:

JavaのHashSetとHashMapクラスの違い