ホームページ  >  記事  >  Java  >  JavaのHashMapとLinkedHashMapの違い

JavaのHashMapとLinkedHashMapの違い

王林
王林オリジナル
2019-11-18 14:19:345328ブラウズ

JavaのHashMapとLinkedHashMapの違い

HashMap

HashMap は最も一般的に使用される Map です。キーの HashCode 値に従ってデータを格納します。その値は取得できます。アクセス速度が非常に速く、トラバース中の順序は完全にランダムです。 HashMap では 1 つのキーのみが Null になり、複数の値が Null になることが許可されます。

特徴: 完全にランダム

利点: ランダムアクセス、高速な値の取得

欠点: 複数のスレッドが同時に HashMap を書き込むと、データの不整合が発生する可能性があります。同期が必要な場合は、 Collection の synchronizedMap メソッドを使用するか、ConcurrentHashMap

LinkedHashMap

LinkedHashMap は、レコードの挿入を保存する HashMap のサブクラスです。 HashMap のランダムな走査とは順序が異なり、Iterator で走査する場合は、Python の OrderedDict と同様に、最初に取得したレコードを最初に挿入する必要があります。

走査速度は HashMap よりも遅くなりますが、例外があります。HashMap の容量が大きく、実際のデータが非常に小さい場合です。HashMap の走査速度はその容量に関係するため、LinkedHashMap の場合は、実際のデータ量にのみ関係します。

TreeMap

TreeMap は SortMap インターフェイスを実装しており、保存したレコードをキーで並べ替えることができます。デフォルトはキーによる昇順です。並べ替えコンパレータを指定して、 TreeMap を走査すると、取得されたレコードはキーによってソートされます。

データに基づいて Map を選択

一般に、最もよく使用されるのは HashMap です。Map 内の要素を挿入、削除、検索するには、HashMap が最適な選択です。ただし、自然な順序またはカスタム順序でキーを反復処理する場合は、TreeMap の方が適しています。出力順序を入力順序と同じにする必要がある場合は、読み取り順序に並べ替えることもできる LinkedHashMap を使用できます。

推奨チュートリアル: Java チュートリアル

以上がJavaのHashMapとLinkedHashMapの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。