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 サイトの他の関連記事を参照してください。