我只是想要确保使用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 的行为很感兴趣。
- 是否保证像 Map 或 Set 这类的集合会通过内容比较键而非引用比较键?
- 还是这取决于实际的实现,比如 HashMap?