HashMapとLinkedHashMapの違いは何ですか

目次:

Anonim

NS 主な違い HashMapとLinkedHashMapの間は LinkedHashMapがデータ挿入の順序を維持している間、HashMapはデータ挿入の順序を維持しません。

マップは、一般的に使用されるデータ構造です。 Java Standard EditionでのMapの2つの実装は、HashMapとLikedHashMapです。 HashMapはハッシュテーブルとして実装されます。キーや値の順序はありません。一方、LinkedHashMapは、データ挿入の順序を維持します。

ハッシュマップ、ハッシュテーブル、LinkedHashMap、マップ

HashMapとは

HashMapは、ハッシュテーブルを使用してMapインターフェイスを実装するクラスです。これはAbstractMapを拡張し、AbstractMapはMapインターフェースを実装します。 HashMapには、キーと値のペアが含まれています。一意のキーで構成できます。 HashMapは同期されておらず、データの挿入順序を維持していません。 HashMapを使用したプログラムの例は次のとおりです。

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

上記のプログラムでは、「従業員」はHashMapのオブジェクトです。整数型のキーと文字列型の値を持つ複数のアイテムを格納できます。 putメソッドを使用すると、HashMapにアイテムを挿入できます。 Map.Entryのforループは、「従業員」のすべてのアイテムを反復処理するために使用されます。 getKeyメソッドはキーを表示し、getValuesメソッドはそれらのキーに対応する値を出力します。

HashMapは、挿入された順序に従って要素を出力しません。さらに、同じ詳細のレコードが2つありますが、印刷されるのはそのうちの1つだけです。これは、HashMapに一意のキーしか含まれていないためです。

LinkedHashMapとは

LinkedHashMapクラスは、Mapインターフェイスのハッシュテーブルおよびリンクリストの実装です。予測可能な反復順序があります。 HashMapクラスを継承し、Mapインターフェースを実装します。 LinkedHashMapにもキーと値のペアがあり、一意の要素のみが含まれています。ただし、同期されていません。

例は次のとおりです。

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

上記のプログラムでは、「従業員」はLinkedHashMapのオブジェクトです。整数型のキーと文字列型の値を持つ複数のアイテムを格納できます。 putメソッドを使用すると、LinkedHashMapにアイテムを挿入できます。 Map.Entryを使用したforループは、「従業員」のすべてのアイテムを反復処理するのに役立ちます。 getKeyメソッドはキーを表示し、getValuesメソッドはそれらのキーに対応する値を出力します。

LinkedHashMapは、挿入された順序に従って要素を出力します。さらに、同じ詳細のレコードが2つありますが、印刷されるのはそのうちの1つだけです。これは、LinkedHashMapに一意のキーのみが含まれているためです。

HashMapとLinkedHashMapの違い

意味

HashMapは、AbstractMapクラスを継承し、Mapインターフェイスを実装するコレクションの作成を支援するクラスです。LinkedHashMapは、予測可能な反復順序でHashtableとMapインターフェイスのリンクリストの両方を実装するクラスです。したがって、これがHashMapとLinkedHashMapの主な違いです。

挿入順序

さらに、HashMapとLinkedHashMapのもう1つの違いは、HashMapはデータ挿入の順序を維持しないのに対し、LinkedHashMapはデータ挿入の順序を維持することです。

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

結論

HashMapとLinkedHashMapは、Mapインターフェースの2つの実装です。 HashMapとLinkedHashMapの主な違いは、HashMapはデータ挿入の順序を維持しないのに対し、LinkedHashMapはデータ挿入の順序を維持することです。

リファレンス:

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

HashMapとLinkedHashMapの違いは何ですか