Java LinkedHashMap完全マスター:作成、操作、パフォーマンス比較
Java LinkedHashMap完全マスター:作成、操作、パフォーマンス比較
JavaのLinkedHashMapを実例とベストプラクティスで作成、操作、比較する方法を発見してください。
JavaコレクションフレームワークのLinkedHashMapクラスは、ハッシュテーブルの高速検索と、内部的な双方向リンクリストによる挿入順またはアクセス順の維持による予測可能なイテレーション順序を兼ね備えています。
LinkedHashMapの作成
LinkedHashMapを使用するには、java.util.LinkedHashMapをインポートし、インスタンス化します。コンストラクタは初期容量、負荷係数、オプションのaccessOrderフラグを受け取ります。
// 初期容量8、負荷係数0.6のLinkedHashMap
LinkedHashMap<Key, Value> numbers = new LinkedHashMap<>(8, 0.6f);
パラメータ:
- capacity - バケット数。デフォルトは16
- loadFactor - テーブルが60%満杯でリサイズトリガー。デフォルトは0.75
- accessOrder -
falseで挿入順、trueでアクセス順(最古→最新)
デフォルト設定での例:
LinkedHashMap<Key, Value> defaultMap = new LinkedHashMap<>();
既存マップからLinkedHashMapを作成
既存マップをLinkedHashMapにコピーして順序を保持:
LinkedHashMap<String, Integer> evenNumbers = new LinkedHashMap<>();
evenNumbers.put("Two", 2);
evenNumbers.put("Four", 4);
LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>(evenNumbers);
numbers.put("Three", 3);
出力:
LinkedHashMap1: {Two=2, Four=4}
LinkedHashMap2: {Two=2, Four=4, Three=3}
主要操作
要素の挿入
put(key, value)- マッピングを追加または置換putIfAbsent(key, value)- キーが欠落している場合のみ追加putAll(map)- 他のマップをマージ
LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
numbers.put("One", 1);
numbers.putIfAbsent("Two", 2);
numbers.putAll(evenNumbers);
要素へのアクセス
キー、値、エントリを取得:
entrySet()- すべてのキー/値ペアkeySet()- すべてのキーvalues()- すべての値get(key)- 値。欠落時はnullgetOrDefault(key, default)- フォールバック付き安全取得
int val = numbers.get("Three");
int def = numbers.getOrDefault("Five", 5);
要素の削除
remove(key)- キーで削除remove(key, value)- 値が一致する場合のみ削除clear()- マップをクリアcontainsKey(key)- 存在確認containsValue(value)- 存在確認size()- エントリ数isEmpty()- 空判定
LinkedHashMap vs HashMap
- LinkedHashMapは挿入順またはアクセス順を保持。HashMapは保持しない
- LinkedHashMapはノードリンク用に追加メモリを使用
- LinkedHashMapのイテレーションはわずかに遅いが、予測可能な順序を提供
Java
- Java演算子をマスター:種類、構文、実践例
- Javaコメント:種類、使い方、ベストプラクティス
- Java if…elseをマスター:制御フローを徹底解説
- Java拡張forループをマスター:構文、例、ベストプラクティス
- Java文字列をマスター:生成、メソッド、ベストプラクティス
- Javaインターフェース完全ガイド:概念、実装、ベストプラクティス
- Java無名インナークラス完全ガイド:定義、構文、実践例
- Javaのtry-with-resourcesをマスターする:自動リソース管理の仕組みと活用法
- Javaアノテーション完全ガイド:種類、配置場所、実践例
- Javaアサーション完全ガイド:バグ早期発見とコード信頼性の向上
- Java Vectorの理解:使い方、特徴、ArrayListとの比較