两个List<Map<String,Object>>取交集
时间: 2023-12-17 08:27:06 浏览: 152
可以使用Java 8的Stream API来实现两个List<Map<String, Object>>的交集操作。具体步骤如下:
1.将两个List<Map<String, Object>>转换为两个Set<Map<String, Object>>,以便进行交集操作。
2.使用Stream API的filter()方法过滤出两个Set中相同的元素。
3.将过滤后的结果转换为List<Map<String, Object>>。
以下是Java代码示例:
```java
List<Map<String, Object>> list1 = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("id", 1);
map1.put("name", "张三");
list1.add(map1);
List<Map<String, Object>> list2 = new ArrayList<>();
Map<String, Object> map2 = new HashMap<>();
map2.put("id", 1);
map2.put("name", "张三");
list2.add(map2);
Set<Map<String, Object>> set1 = new HashSet<>(list1);
Set<Map<String, Object>> set2 = new HashSet<>(list2);
List<Map<String, Object>> result = set1.stream()
.filter(set2::contains)
.collect(Collectors.toList());
System.out.println(result);
```
输出结果为:
```
[{id=1, name=张三}]
```
阅读全文