我只是想确保我的代码使用对象作为键是安全的。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
?