HashMapとHashSetの違いは何ですか

目次:

Anonim

NS 主な違い HashMapとHashSetの間には、 HashMapはマップインターフェイス階層に属しており、HashSetがコレクションインターフェイス階層に属している間は、コレクションインターフェイスとの関連付けはありません。

Javaなどのプログラミング言語は、データを動的に格納するための「コレクション」と呼ばれる機能を提供します。コレクションを使用して、複数のオブジェクトを1つのユニットとして格納することができます。さらに、コレクションの追加、削除、削除、並べ替え、検索などの操作を実行することもできます。 Javaでコレクションを実装するための基本インターフェースは、コレクションと呼ばれます。また、SetはCollectionインターフェイスを拡張するインターフェイスです。 HashSetはこの階層に分類されます。一方、Mapは独立したインターフェースであり、Collectionインターフェースを拡張しません。 HashMapはマップ階層の下にあります。

HashMap、HashSet、Java、Map

HashMapとは

HashMapは、ハッシュテーブルを使用してMapインターフェイスを実装するクラスです。 AbstractMapがMapインターフェースを実装している間、AbstractMapを拡張します。さらに、キーと値のペアが含まれており、一意のキーのみが存在できます。 1つのnullキーと複数のnull値を持つことができます。さらに、HashMapは同期されておらず、特定の順序を維持していません。プログラム例は以下のとおりです。

図1:HashMapを使用したプログラム

「学生」はHashMapのオブジェクトです。キーとして整数、値として文字列を持つ複数のアイテムを格納できます。 putメソッドは、HashMapに新しいアイテムを挿入するのに役立ちます。 Map.Entryを使用したforループを使用すると、学生のすべてのアイテムを調べることができます。 getKey()メソッドはキーを出力し、getValues()メソッドは値を出力します。さらに、HashMapは特定の順序を維持しません。したがって、挿入された順序に従って要素を印刷しません。また、キー2のアイテムは2つありますが、1つのアイテムしか印刷されません。したがって、一意のキーのみが含まれます。

HashSetとは

HashSetは、ストレージにハッシュテーブルを使用してコレクションを作成するのに役立つクラスです。 HashSetはAbstractSetを拡張します。 AbstractSetはSetを実装し、SetはCollectionを拡張します。 null値を含めることができ、同期されません。さらに、HashSetは挿入順序を維持せず、一意の要素のみが含まれます。例は次のとおりです。

図2:HashSetを使用したプログラム

「果物」はHashSetのオブジェクトです。文字列を保存できます。 addメソッドは、HashSetに新しい要素を挿入するのに役立ちます。 iteratorメソッドは、HashSet内のアイテムの数を取得し、それを変数iに格納します。次に、whileループが各アイテムを通過して、それらを印刷します。最初に追加されたアイテムはOrangeでしたが、出力の最初のアイテムはAppleです。したがって、HashSetは挿入順序を維持しません。さらに、Appleには2つのアイテムがありますが、そのうちの1つしか印刷されません。したがって、固有のアイテムのみが含まれます。

HashMapとHashSetの違い

意味

HashMapは、AbstractMapクラスを継承し、Mapインターフェイスを実装するコレクションの作成を支援するクラスです。 HashSetは、AbstractSetクラスを継承し、Setインターフェイスを実装する単一のユニットとして要素のセットを作成するのに役立つクラスです。したがって、これがHashMapとHashSetの根本的な違いです。

コレクションインターフェイスとの関連付け

さらに、HashMapはマップ階層にあります。コレクションインターフェイスには属していません。一方、HashSetはコレクション階層にあります。したがって、これがHashMapとHashSetの主な違いの1つです。

キー、値

HashMapとHashSetのもう1つの違いは、HashMapにはキーと値が含まれているのに対し、HashSetには値が含まれていることです。

機能性

HashMapとHashSetのもう1つの違いは、HashMapはHashtableを使用してキーに基づいて値を格納するのに対し、HashSetはハッシュメカニズムを使用して要素を格納することです。

結論

HashMapとHashSetの主な違いは、HashMapがマップインターフェイス階層に属し、HashSetがコレクションインターフェイス階層に属している間、コレクションインターフェイスとの関連付けがないことです。

リファレンス:

1.「JavaのHashMap–Javatpoint」。 Www.javatpoint.com、ここから入手可能2。 「JavaのHashSet–Javatpoint」 Www.javatpoint.com、ここから入手できます。

HashMapとHashSetの違いは何ですか