找出Map的Key不存在在List的某个属性
时间: 2024-03-17 09:43:20 浏览: 13
假设你有一个 `List<MyObject>` 对象列表和一个 `Map<String, Object>` 对象,你想要找出这个 Map 中的 Key 不存在于对象列表中某个属性的值中的情况,那么你可以使用 Java 8 Stream 的方式来实现,具体代码如下:
```java
List<MyObject> myObjectList = new ArrayList<>();
Map<String, Object> myMap = new HashMap<>();
// 找出 Map 中的 Key 不存在于对象列表中某个属性的值中
List<String> nonExistKeys = myMap.keySet().stream()
.filter(key -> myObjectList.stream()
.noneMatch(myObject -> myObject.getMyProperty().equals(key)))
.collect(Collectors.toList());
if(nonExistKeys.size() > 0) {
System.out.println("以下 Key 不存在于对象列表中某个属性的值中:" + String.join(", ", nonExistKeys));
} else {
System.out.println("所有 Key 都存在于对象列表中某个属性的值中");
}
```
这里使用了 `filter` 方法来筛选出不存在于对象列表中某个属性的值中的 Key,然后使用 `collect` 方法将结果转成 List。其中,`myObject.getMyProperty()` 表示对象中的一个属性,你需要将其替换为你自己的属性名称。如果不存在这样的 Key,则返回一个空的 List。