public static BatchMetric list(BatchMetric metric, List<Map<Object,Object>> list1, List<Map<Object,Object>> list2){
System.out.println("#---------前"+list1);
System.out.println("#---------前"+list2);
Map<Object,Object> map1 = list1.get(0);
Map<Object,Object> map2 = list2.get(0);
MapDifference<Object, Object> difference = Maps.difference(map1,map2);
// 是否有差异,返回boolean
boolean areEqual = difference.areEqual();
//System.out.println("比较两个Map是否有差异:" + areEqual);
if (areEqual){
System.out.println("两个Map没有差异");
}else {
System.out.println("两个Map有差异");
// 键只存在于左边Map的映射项
Map<Object, Object> onlyOnLeft = difference.entriesOnlyOnLeft();
System.out.println("键只存在于第一个clickMap的映射项:" + onlyOnLeft);
if (StringUtil.isNotEmpty(onlyOnLeft)){
for (Object key : onlyOnLeft.keySet()) {
System.out.println("key= " + key + " and value= " + onlyOnLeft.get(key));
map2.put(key,0);
}
}
// 键只存在于右边Map的映射项
Map<Object, Object> entriesOnlyOnRight = difference.entriesOnlyOnRight();
System.out.println("键只存在于第二个reptileMap的映射项:" + entriesOnlyOnRight);
if (StringUtil.isNotEmpty(entriesOnlyOnRight)){
for (Object key : entriesOnlyOnRight.keySet()) {
System.out.println("key= " + key + " and value= " + entriesOnlyOnRight.get(key));
map1.put(key,0);
}
}
}
System.out.println("#---------后"+list1);
System.out.println("#---------后"+list2);
metric.setHours_click(list1);
metric.setHours_reptile(list2);
return metric;
}
java 两个不同list<map> 取差集 并相互补全
最新推荐文章于 2022-09-30 22:12:09 发布