2017-03-15 4 views
2

Ich habe zwei verschachtelte HashMaps, die die folgende Struktur habenWie kann ich vergleichen zwei verschachtelte Karten ohne bestimmte Tasten

key1: { 
key2: { 
    bad_key: {} 
} 
} 

Wie kann ich zwei Hashmaps vergleichen, nur bestimmten verschachtelten Schlüssel weggelassen?

Eine Lösung ist durch beide Karten zu durchqueren (Sie Ihre Karte abflachen können, das heißt umfassen gefaltet Schlüssel in Hauptkarte), verschachtelte Schlüssel entfernen und eine dort diese keine besseren Lösungen sind

Map1.equals(Map2) 

tun?

Antwort

2

Sie Maps von Guava: Google Core Libraries For Java

MapDifference<Integer, Student> mapDifference = Maps.difference(map1, map2); 

verwenden könnte Wenn Sie externe Bibliothek nicht benutzen wollen, würde ich so etwas wie dies gerade tun:

List<String> keys = Arrays.asList("one", "two", "three'"); 


for(String key: keys){ 
    if(!left.get(key).equals(right.get(key))){ 
     //do something with difference 
    } 
}; 
Verwandte Themen