ホームページ  >  記事  >  Java  >  Javaのキーソートはマップでしょうか?

Javaのキーソートはマップでしょうか?

angryTom
angryTomオリジナル
2019-11-18 11:46:462046ブラウズ

Javaのキーソートはマップでしょうか?

Java マップのキーはソートされていますか?

Java は、データ内のマッピング用のインターフェイス java.util を定義します。構造体 .Map は、4 つのクラス、つまり HashMap、HashTable、LinkedHashMapTreeMap を実装します。Map ではキーの重複は許可されませんが、値の重複は許可されます。

1.HashMap:

#最も一般的に使用されるMapは、キーのハッシュコード値に従ってデータを格納し、その値はキーに従って直接取得できます(同じキーのハッシュコード値は同じであるため、アドレスがハッシュコードである場所に値が格納されます)値を直接取得できるため、キー値に従って直接取得できます)、アクセス速度が非常に高速です。トラバースする場合、

データを取得する順序は完全にランダムです、HashMap では 1 つのレコードのキーのみを許可しますHashMap はスレッド同期をサポートしていません。つまり、複数のスレッドがいつでも同時に HashMap を書き込むことができるため、データの不整合が発生する可能性があります。同期が必要な場合は、 synchronziedMap メソッドを使用して HashMap を同期させることも、 concurrentHashMap

2 .HashTable:

HashMap と同様に、記録されたキーや値を空にし、スレッド同期をサポートします。つまり、一度に 1 つのスレッドだけが HashTable に書き込むことができるため、書き込み時に HashTable の速度が遅くなります!

3.LinkedHashMap:

は HahsMap のサブクラスですが、

レコードの挿入順序を維持します , トラバーサル中に最初に取得したものを最初に挿入する必要があります. 構築中にパラメータを取得し、その数で並べ替えることもできますHahsMap よりも走査は遅くなりますが、例外があります。HashMap の容量が大きく、実際のデータが小さい場合、走査速度は LinkedHashMap (チェーンであるため) より遅くなります。 HashMap はその容量に関係し、LinkedHashMap の走査速度はデータ量にのみ関係します

4.TreeMap:

sortMap インターフェイスを実装します

保存されたレコードをキーに従って並べ替えることができます (デフォルトは昇順) 、並べ替えコンパレータを指定することもでき、走査中に取得されたデータは並べ替えられます

どのタイプのマップを使用する必要がありますかどのような状況の場合:

マップ内の要素の挿入、削除、検索: HashMap

カスタム順序または自然な順序で移動するには: TreeMap

入力順序と出力順序が同じになるようにする: LinkedHashMap

php 中国の Web サイト、多数の無料の

Java 入門チュートリアル 、オンラインで学習することを歓迎します。

以上がJavaのキーソートはマップでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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