我有以下方法,我想比較2個哈希映射 :map1和map2。比較Java中的2個哈希映射
每一個HashMap具有:
key: string.
value: ArrayList<String>
我所試圖做的是檢查,如果兩個包含HashMap是相等的
public boolean compareT(HashMap map1, HashMap map2) {
Iterator entriesH = map1.entrySet().iterator();
Iterator entriesE = map2.entrySet().iterator();
if (map1.size() == map2.size()) {
while (entriesE.hasNext() && entriesH.hasNext()) {
Map.Entry eEntry = (Map.Entry) entriesE.next();
Map.Entry hEntry = (Map.Entry) entriesH.next();
}
}
}
編輯
以下地圖應該返回RN TRUE:
map1:
key: key1, value: v1, v6, v3, v2
key: key2, value: b1, b6, b2, b7
map2:
key: key1, value: v6, v3, v2, v1
key: key2, value: b6, b1, b7, b2
那麼這有什麼問題? – csmckelvey
即使所有的鍵/值都相同,也不能保證兩張地圖會以相同順序返回條目。 – biziclop
'map1.equals(map2)'將檢查這兩個映射是否包含映射到相同值的相同鍵,而不管順序如何(由Map :: equals指定)(https://docs.oracle.com /javase/8/docs/api/java/util/Map.html#equals-java.lang.Object-) – yshavit