java list删除字典中没有的key
时间: 2023-05-14 18:07:31 浏览: 64
可以使用迭代器遍历字典,判断每个key是否存在于list中,如果不存在则使用迭代器的remove方法删除该key对应的键值对。以下是示例代码:
```
Map<String, String> map = new HashMap<>();
List<String> list = new ArrayList<>();
// 添加一些键值对
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
// 添加一些需要删除的key
list.add("key1");
list.add("key4");
// 使用迭代器遍历字典
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> entry = iterator.next();
String key = entry.getKey();
if (!list.contains(key)) {
iterator.remove();
}
}
// 输出删除后的字典
System.out.println(map);
```
输出结果为:
```
{key1=value1}
```
注意:在遍历字典时不能直接使用map.keySet()或map.values()方法,因为这样会导致ConcurrentModificationException异常。