我只是想確保我的代碼是安全使用Integer
對象作爲關鍵。這裏有一個簡單的例子:帶有整數鍵的Java Map:如何比較鍵?
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的行爲很感興趣。
- 能夠保證所有的像地圖或設置集合將通過其內容的按鍵比較,而不是他們的參考?
- 還是取決於實際的實施,如
HashMap
?
@close:這不是重複 - 其他帖子處理「等於==」的問題,而這個問題是關於Integer在集合中的表現如何?這就是爲什麼底部有彈痕點。我問:收藏如何處理。 – Scolytus