我有一個哈希圖,我想通過參考找到一個鍵。我發現該get(key)方法用于.equal()查找密鑰。但我需要它來==通過參考找到它。例如在下面的代碼中:
HashMap<List, String> myMap = new HashMap<List, String>();
List<String> pets = new ArrayList<>();
pets.add("cat");
pets.add("dog");
myMap.put(pets, "pets");
List<String> animals = new ArrayList<>();
animals.add("cat");
animals.add("dog");
var alreadyExists = myMap.containsKey(animals); //I want this to return false
if(!alreadyExists) {
myMap.put(animals, "pets");
}
System.out.println(myMap.size()); //and therefore, I want this to print 2!
正如我所評論的,我alreadyExists需要false.
我是 java 新手,但在 c# 中你可以很容易地做這樣的事情:
var alreadyExists = myMap.containsKey(a => a == animals);
有沒有辦法在 Java 中做這樣的事情,因為我不想重寫該equal()方法!
uj5u.com熱心網友回復:
Java 有一個名為IdentityHashMap的類,它完全符合您的要求 - 它比較參考而不是使用 equals()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/466522.html
上一篇:如何啟用特定的VScode通知?
