Java中怎么检测map中含有key且值不为null的优雅写法
时间: 2024-03-08 17:46:30 浏览: 79
可以使用Java8中的Stream API来实现检测Map中是否含有key且值不为null的优雅写法。示例代码如下:
```java
Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", null);
boolean containsNotNullValue = map.entrySet().stream()
.filter(entry -> "key1".equals(entry.getKey()))
.map(Map.Entry::getValue)
.filter(Objects::nonNull)
.findFirst()
.isPresent();
if (containsNotNullValue) {
System.out.println("map中含有key1且值不为null");
}
```
代码中使用`entrySet()`方法将Map转化为Set集合,然后使用`stream()`方法将其转化为Stream流。接着使用`filter()`方法过滤出key为"key1"的entry,再使用`map()`方法将entry转化为value值的Stream流。然后使用`filter()`方法过滤出value值不为null的元素,再使用`findFirst()`方法获取第一个符合条件的元素,最后使用`isPresent()`方法判断是否存在符合条件的元素。如果存在,则说明Map中含有key且值不为null。
阅读全文