我有两张当前和之前的地图,我想看看两张地图之间是否有任何差异.如果currentMap中存在新键,或者同一个键的值不同,我可以停止.
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())));
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做这个或内置的实用功能,这样做的东西?
在番石榴:
MapDifference<String, String> mapDifference = Maps.difference(currValue, previousValue);
return !mapDifference.entriesOnlyOnLeft().isEmpty()
|| !mapDifference.entriesDiffering().isEmpty();
Run Code Online (Sandbox Code Playgroud)
https://www.leveluplunch.com/java/examples/guava-map-difference-example/