У меня есть следующий метод, я хотел бы сравнить между 2 HashMap : map1 и map2.Сравните 2 HashMaps в Java
каждый HashMap имеет:
key: string.
value: ArrayList<String>
То, что я пытаюсь сделать, это проверить, если оба HashMaps равны
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();
}
}
}
EDIT
Следующая карты должны гп 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