Java 删除HashMap';是否安全;在对其值进行迭代时,是否为?
假设我知道密钥,那么在遍历时是否可以删除它Java 删除HashMap';是否安全;在对其值进行迭代时,是否为?,java,Java,假设我知道密钥,那么在遍历时是否可以删除它 for (ExampleClass e : map.values()) { if (condition) { map.remove(key); } } 我发现了一个相关的问题(),但它假设我们正在迭代密钥集。这是否适用于值集?来自: 这个类的所有“集合视图方法”返回的迭代器都是快速失效的:如果在迭代器创建后的任何时候,以任何方式(除了通过迭代器自己的remove方法之外)修改了映射的结构,迭代器将抛出一个Concurr
for (ExampleClass e : map.values()) {
if (condition) {
map.remove(key);
}
}
我发现了一个相关的问题(),但它假设我们正在迭代密钥集。这是否适用于值集?来自:
这个类的所有“集合视图方法”返回的迭代器都是快速失效的:如果在迭代器创建后的任何时候,以任何方式(除了通过迭代器自己的remove方法之外)修改了映射的结构,迭代器将抛出一个ConcurrentModificationException
因此,您不能使用映射。删除(键)
从javadoc获取:
集合支持元素移除,即通过Iterator.remove、collection.remove、removeAll、retainal和clear操作从映射中移除相应的映射
因此,您可以使用迭代器#remove()
从值集中删除条目。从:
这个类的所有“集合视图方法”返回的迭代器都是快速失效的:如果在迭代器创建后的任何时候,以任何方式(除了通过迭代器自己的remove方法之外)修改了映射的结构,迭代器将抛出一个ConcurrentModificationException
因此,您不能使用映射。删除(键)
从javadoc获取:
集合支持元素移除,即通过Iterator.remove、collection.remove、removeAll、retainal和clear操作从映射中移除相应的映射
因此,您可以使用
迭代器#remove()
从值集中删除条目。有时我想知道什么会更快,测试看看发生了什么,或者问什么?有时我想知道什么会更快,测试看看发生了什么,或者问什么?