java map过滤掉值为空的key
时间: 2024-03-11 18:51:10 浏览: 126
如果想要过滤掉Map中值为空的key,可以使用以下方法:
1. 使用迭代器
可以使用Map的entrySet()方法获取Map中的所有键值对,然后使用迭代器遍历键值对,判断值是否为空,如果为空则使用迭代器的remove()方法删除该键值对。
示例代码:
```
Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", "");
map.put("key3", "value3");
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> entry = iterator.next();
if (entry.getValue() == null || entry.getValue().isEmpty()) {
iterator.remove();
}
}
```
2. 使用Java 8的Stream API
Java 8引入了Stream API,可以使用filter()方法过滤掉不符合条件的元素,然后使用collect()方法将过滤后的元素收集到一个新的Map中。
示例代码:
```
Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", "");
map.put("key3", "value3");
Map<String, String> filteredMap = map.entrySet().stream()
.filter(entry -> entry.getValue() != null && !entry.getValue().isEmpty())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
```
以上两种方法都可以过滤掉值为空的key,选择哪种方法取决于具体的业务需求和代码实现。
阅读全文