LinkedHashMap<String, String> map = new LinkedHashMap<>(); for里面存值后clear不生效
时间: 2023-07-14 21:14:01 浏览: 139
HashMap<K,V>对象-java教程第六版
`LinkedHashMap` 的 `clear()` 方法会清空整个映射表,移除其中的所有键值对。如果您在使用 `for` 循环迭代映射表的同时对其进行修改,可能会导致迭代器出现异常,从而 `clear()` 方法无法正常工作。
为了避免这种情况,可以使用 `map.keySet().clear()` 来清空映射表的键集合,然后再用 `map.clear()` 清空整个映射表,代码示例如下:
```java
LinkedHashMap<String, String> map = new LinkedHashMap<>();
for (int i = 0; i < 10; i++) {
map.put("key" + i, "value" + i);
}
map.keySet().clear();
map.clear();
```
这样可以确保清空操作生效,并且不会影响迭代器的正常运行。
阅读全文