java 两个list集合泛型是map,如何筛选出不同的数据
时间: 2023-08-11 17:28:02 浏览: 127
如果你有两个泛型为 Map 的 List 集合,并且需要筛选出它们中不同的数据,你可以按照以下步骤进行:
1. 遍历第一个 List 集合,将其中每个元素的值与第二个 List 集合中的元素进行比较。
2. 如果第二个 List 集合中不存在与第一个集合中相同的元素,将其加入到一个新的 List 集合中。
3. 遍历完第一个 List 集合后,新的 List 集合中就存储了两个集合中不同的数据。
4. 重复上面的过程,遍历第二个 List 集合,将其中不存在于第一个 List 集合中的元素加入到新的 List 集合中。
下面是一个示例代码:
```
List<Map<String, Object>> list1 = new ArrayList<>();
List<Map<String, Object>> list2 = new ArrayList<>();
List<Map<String, Object>> result = new ArrayList<>();
// 假设两个集合中已经存储了数据
// 遍历第一个 List 集合,查找与第二个集合中不同的元素
for (Map<String, Object> map : list1) {
boolean isExist = false;
for (Map<String, Object> m : list2) {
if (map.equals(m)) {
isExist = true;
break;
}
}
if (!isExist) {
result.add(map);
}
}
// 遍历第二个 List 集合,查找与第一个集合中不同的元素
for (Map<String, Object> map : list2) {
boolean isExist = false;
for (Map<String, Object> m : list1) {
if (map.equals(m)) {
isExist = true;
break;
}
}
if (!isExist) {
result.add(map);
}
}
```
这个代码示例中,假设两个集合中存储的是 Map 类型的元素,你可以根据实际情况调整集合的泛型。同时,在比较两个 Map 元素是否相同时,需要实现 Map 对象的 equals 方法。
阅读全文