ホームページ > Java > &#&チュートリアル > HashMap、LinkedHashMap、または TreeMap: どの Java マップを使用する必要がありますか?

HashMap、LinkedHashMap、または TreeMap: どの Java マップを使用する必要がありますか?

Susan Sarandon
リリース: 2024-12-17 13:23:16
オリジナル
579 人が閲覧しました

HashMap, LinkedHashMap, or TreeMap: Which Java Map Should I Use?

Java の HashMap、LinkedHashMap、および TreeMap の違いを理解する

HashMap、LinkedHashMap、および TreeMap はすべて、Java の Map インターフェイスの実装です。 Java と同じですが、動作と使用例が異なります。それらの主な違いを見てみましょう。

1.反復順序

  • HashMap: 保証された反復順序はありません。キーと値は任意の順序で返すことができます。
  • ツリーマップ: キーと値は、自然な順序または提供された Comparator によって昇順に並べ替えられます。
  • LinkedHashMap: キーと値は元の順序で返されます。挿入されました。

2.パフォーマンス

  • Get/Put/Remove/ContainsKey:

    • HashMap: O(1)
    • ツリーマップ: O(log(n))
    • LinkedHashMap: O(1)

3.インターフェイス

  • HashMap: Map インターフェイスのみを実装します。
  • TreeMap: NavigableMap、Map、および SortedMap を実装します。インターフェース。
  • LinkedHashMap: Map インターフェースのみを実装します。

4. Null 値/キー

  • HashMap: null キーと null 値の両方を許可します。
  • TreeMap: null のみを許可します値。
  • LinkedHashMap: null キーと値の両方を許可します。

5.フェイルファスト動作

  • HashMap: フェイルファスト動作は、同時変更が存在するイテレータに対して保証されません。
  • ツリーマップ: と同じHashMap.
  • LinkedHashMap: HashMap.

と同じ 6.実装

  • HashMap: キーと値のペアの保存にバケットを使用します。
  • TreeMap: 赤黒ツリーを使用します並べ替えを維持するためキー。
  • LinkedHashMap: 二重リンクされたバケットを使用して、挿入順序を保持します。

7.同期

  • HashMap: 実装は同期されていません。
  • TreeMap: 実装は同期されていません同期されています。
  • LinkedHashMap: 実装は同期されていません。

8.ハッシュテーブル

ハッシュテーブルは Map インターフェイスのレガシー実装であり、強力に同期されますが、HashMap よりも効率が低くなります。一般に、ほとんどのユースケースでは、Hashtable ではなく HashMap を使用することをお勧めします。

以上がHashMap、LinkedHashMap、または TreeMap: どの Java マップを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート