Java の HashMap、LinkedHashMap、および TreeMap の違いを理解する
HashMap、LinkedHashMap、および TreeMap はすべて、Java の Map インターフェイスの実装です。 Java と同じですが、動作と使用例が異なります。それらの主な違いを見てみましょう。
1.反復順序
-
HashMap: 保証された反復順序はありません。キーと値は任意の順序で返すことができます。
-
ツリーマップ: キーと値は、自然な順序または提供された Comparator によって昇順に並べ替えられます。
-
LinkedHashMap: キーと値は元の順序で返されます。挿入されました。
2.パフォーマンス
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 サイトの他の関連記事を参照してください。