code: private static Map<String, Set> compareAndAggregate(Map sourceMap, Map targetMap) {
          //keys witch values are different
          System.out.println("compare maps");
          System.out.println("source: " + sourceMap);
          System.out.println("target: " + targetMap);
          Map<String, Set> aggregationInfo = new HashMap<String, Set>();
          Set<Object> keysForDiffValues = new HashSet<Object>();
          for (Object regionKey : targetMap.keySet()) {
              if (!targetMap.get(regionKey).equals(sourceMap.get(regionKey)))      //we compare not original values, but it's hash code
                  keysForDiffValues.add(regionKey);
          }
  
          aggregationInfo.put("diffValues", keysForDiffValues);
          return aggregationInfo;
      }
docs: compare two snapshots from source and target maps
  format: key: absentKeys or map