java List<Map<String><String>>中比较差异数据
时间: 2023-10-14 21:06:52 浏览: 146
Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并
如果你想要比较两个List<Map<String, String>>之间的差异数据,可以按照以下步骤进行:
1. 遍历第一个List中的每一个Map,对于每一个Map中的键值对,检查它是否在第二个List中的Map中存在,如果不存在,则将该键值对添加到差异数据集合中。
2. 遍历第二个List中的每一个Map,对于每一个Map中的键值对,检查它是否在第一个List中的Map中存在,如果不存在,则将该键值对添加到差异数据集合中。
下面是代码示例:
```
public List<Map<String, String>> diff(List<Map<String, String>> list1, List<Map<String, String>> list2) {
List<Map<String, String>> diffList = new ArrayList<>();
// 检查第一个List中的每一个Map
for (Map<String, String> map1 : list1) {
// 检查每一个键值对是否在第二个List中的Map中存在
boolean found = false;
for (Map<String, String> map2 : list2) {
if (map2.containsKeyAll(map1)) {
found = true;
break;
}
}
// 如果不存在,则将该键值对添加到差异数据集合中
if (!found) {
diffList.add(map1);
}
}
// 检查第二个List中的每一个Map
for (Map<String, String> map2 : list2) {
// 检查每一个键值对是否在第一个List中的Map中存在
boolean found = false;
for (Map<String, String> map1 : list1) {
if (map1.containsKeyAll(map2)) {
found = true;
break;
}
}
// 如果不存在,则将该键值对添加到差异数据集合中
if (!found) {
diffList.add(map2);
}
}
return diffList;
}
```
这段代码返回的是两个List中的差异数据集合。其中,`containsKeyAll`是一个自定义的方法,用于检查一个Map中的所有键值对是否都存在于另一个Map中。
阅读全文