オブジェクトをキーとして使用してコードが安全であることを確認したいだけです。Integer
以下に短い例を示します。
Integer int1 = new Integer(1337);
Integer int2 = new Integer(1337);
if (int1 == int2) {
System.out.println("true");
} else {
System.out.println("false");
}
if (int1.equals(int2)) {
System.out.println("true");
} else {
System.out.println("false");
}
Map<Integer, Object> map = new HashMap<Integer, Object>();
map.put(int1, null);
map.put(int2, null);
System.out.println(map.size());
コードが出力されます
false
true
1
それは私が期待していたことです。参照は異なりますが、互いに等しいです。今、私はマップの動作に興味があります。
- Map や Set などのコレクションが、参照ではなくコンテンツによってキーを比較することが保証されていますか?
- または、実際の実装に依存し
HashMap
ますか?