Ich habe zwei Karten aktuelle und vorherige und ich möchte sehen, ob es einen Unterschied zwischen den 2 Karten gibt. Wenn entweder ein neuer Schlüssel in der aktuellen Karte vorhanden ist oder wenn die Werte für denselben Schlüssel unterschiedlich sind, kann ich anhalten.Finden Sie die Unterschiede zwischen zwei Karten
Map<String, String> previousValue;
Map<String, String> currValue;
boolean isChangePresent = currValue.entrySet().stream().anyMatch(
x -> !previousValue.containsKey(x.getKey()) ||
(previousValue.get(x.getKey()) != null && !previousValue.get(x.getKey()).equals(
x.getValue())));
Gibt es einen besseren Weg, dies zu tun, oder eine eingebaute Utility-Funktion, die etwas in der Art tut?
Was mit 'previousValue.equals (currValue) falsch'? –
@AndyTurner tut es nicht, was das OP zu fragen scheint: d. H., Dass alle Einträge von currValue in previousValue enthalten sind. d. h. 'previousValue.entrySet(). containsAll (currValue.entrySet())' –