JavaでIdentityHashMapを使用する方法は何ですか?
IdentityHashMapは、Javaで特別なHashMapの実装であり、オブジェクトの参照をキーとして使用し、オブジェクトが等しいかどうかを判断するためにequals()やhashCode()メソッドを使用しません。
IdentityHashMapを使用する主な目的は、オブジェクトの参照が等しいかどうかを比較する必要がある場合です。たとえば、異なる参照を保持する必要がある場合や、オブジェクトをキーとして使用する必要がある場合などがあります。
IdentityHashMapの使い方はHashMapと似ており、put()メソッドを使ってキーと値のペアをマップに追加し、get()メソッドを使ってキーから値を取得し、containsKey()メソッドを使って指定されたキーが存在するかどうかをチェックするなどができます。
以下は簡単な例です。
IdentityHashMap<String, Integer> map = new IdentityHashMap<>();
// 添加键值对
map.put("one", 1);
map.put("two", 2);
map.put(new String("one"), 3); // 不同的引用,仍然可以添加成功
// 获取值
System.out.println(map.get("one")); // 输出3,因为使用了不同的引用
// 检查键是否存在
System.out.println(map.containsKey("one")); // 输出true
// 遍历映射
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
結果は出力されます。
3
true
one : 3
two : 2
IdentityHashMap は、Equals メソッドや hashCode()メソッドではなく、オブジェクトの参照をキーとして使用するため、特定の状況では適切でないことに注意が必要です。一般的には、HashMap を使えばほとんどの要求を満たすことができます。