の ハッシュマップ そして ハッシュセット 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); } }
出力:
ハッシュセットの例
次の例では、重複する値は 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); } }
出力: