Java は、依存関係を最小限に抑えて注文を実装するためのクラス指向プログラミング言語です。 Java のマップ インターフェイスは、キーとその値の関係を表します。 Map 実装のいくつかのグループが Map インターフェイスを維持します。
HashMap と LinkedHashMap は、Java の XNUMX つのよく使用される Map 実装です。 この XNUMX つの類似点は、同期していないことです。 彼らはパフォーマンスにも類似点があります。 しかし、この XNUMX つの違いは何でしょうか?
主要な取り組み
- HashMap はキーと値のペアを格納し、null 値を許可するコレクションですが、LinkedHashMap は挿入順序を維持します。
- HashMap は頻繁な挿入と削除のパフォーマンスを向上させますが、LinkedHashMap は反復順序が重要なアプリケーションにより適しています。
- LinkedHashMap は、その順序付けメカニズムにより、HashMap よりもわずかに多くのメモリを使用します。
HashMap と LinkedHashMap の比較
HashMap には、ハッシュ テーブルを使用して格納される要素があり、要素の挿入、削除、取得などの操作で一定時間のパフォーマンスが可能になります。 LinkedHashMap は二重リンク リストを使用して要素の順序を維持するため、HashMap よりもパフォーマンスがわずかに遅くなります。

ハッシュマップは 地図 AbstractMap クラスを使用し、それを拡張して、同じクラスに属する継承のコレクションの作成を支援する Java の実装。 入力された要素には順序がなく、入力された順序も保存されません。
LinkedHashMap は、HashMap のサブクラスである別の Map 実装です。 これらにはキーの挿入順序があるため、挿入とアクセスの順序が重要な領域に適用されます。 また、HashMap よりも多くのメモリを備えています。
比較表
比較のパラメータ | ハッシュマップ | LinkedHashmap |
---|---|---|
意味 | これは、AbstractMap クラスを使用する Java Map 実装であり、継承のコレクションの作成に役立ちます。 | これは Java Map の一種でもあり、Map の Hashtable と Linked List を実装する HashMap のサブクラスです。 |
要素 | HashMap に入力された要素が順番どおりではありません。 | 要素はキーの挿入順であることが知られています。 |
注文 | 要素が入力された順序は、HashMap では保持されません。 | これらはキーの挿入順であるため、要素を入力する順序は保持されます。 |
データ構造 | これらはバケットのリストとして保存され、Map インターフェイスのハッシュテーブルとして実装されます。 | LinkedHashMap には、そこに格納されているすべてのリストを実行する二重リンク リストがあります。 |
検索 | HashMap に格納されているリストに対して、このようなタスクを取得または実行するのは簡単です。 | LinkedHashMap へのエントリの取得、削除、または追加は、HashMap よりも困難です。 |
アプリケーション | 検索しやすい場所やその他の一般的な目的で使用されます。 | これは、LRU キャッシュなど、挿入順序やアクセス順序が重要な場所に適用または使用されます。 |
ハッシュマップとは?
HashMap は、AbstractMap を実装および拡張して、同じクラスに属する継承のコレクションの作成を支援する Map 実装です。 このクラスを使用すると、キーとその値を保存して Map インターフェイスを形成できます。
HashMap は同期されていません。null 値も保存できますが、null キーは 1 つだけ定義する必要があります。複数の null キーでは機能しません。これは、保存されるキーが一意である必要があるためでもあります。
重複したものが保存されている場合でも、リスト内の元のものに置き換えられます。 これを他のマップ実装グループと区別する特徴は、キーを入力する順序がなく、入力された順序も保存しないことです。
データ構造は HashMap から簡単に取得できます。 取得したデータは簡単に変更、追加、削除することもできます。 したがって、それらの主な用途は、高速な検索プロセスやその他の一般的な目的を必要とする場所にあります。

LinkedHashMap とは何ですか?
LinkedHashMap もマップ実装グループです。 これらは HashMap のサブグループですが、HashMap 自体を拡張および実装し、AbstractMap に拡張し、さらにマップ インターフェイスに拡張します。
LinkedHashMap も同期またはリンクされていません。 入力された値は一意である必要がありますが、リスト内に複数の null 値を含めることはできますが、null キーは XNUMX つだけです。
このマップの実装では、キーは順番に入力されます。つまり、キー挿入順序と呼ばれるものです。 入力されたキーの順序も同様に保持されます。
これは、すべてのリストを貫く二重リンク リストによって無視され、維持されます。これは、二重リンク リストが順序を維持し、挿入順序とアクセス順序が重要な領域でのアプリケーションを維持するためです。

HashMap と LinkedHashMap の違い
- ハッシュマップが人気 Java AbstractMap クラスを使用し、それを拡張して AbstractMap の継承コレクションの作成を支援できるマップ実装。 LinkedHashMap は HashMap のサブクラスであり、HashMap を拡張して Map の Linked List を実装します。
- HashMap に入力される要素には特定の順序はありませんが、LinkedHashMap はキーの挿入順序に従います。
- 主な違いは、XNUMX つのマップの順序が維持されていることです。 HashMap は、キーまたは要素が入力された順序を保持しません。 一方、LinkedHashMap はキーの挿入順序に従うため、要素が入力された順序が保持されます。
- HashMap のデータ構造は、Hashtable が実装されたバケットのリストとして保存されます。 エントリ数が一定数を超える場合は、バランスのとれた形式に切り替えられます。 一方、LinkedHashMap には、データ構造を管理するために保存されているすべてのリストを実行する二重リンク リストがあります。
- HashMap では、データ エントリの削除や追加などの機能の取得と実行が簡単です。 ただし、LinkedHashMap で同じ機能を実行するのは、HashMap よりも困難です。
- データ エントリの取得が簡単なため、HashMap は高速なデータ取得やその他の一般的な目的に使用されます。 一方、LinkedHashMap は、LRU キャッシュなど、挿入順序やアクセス順序が重要な場合に使用されます。