Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 删除HashMap';是否安全;在对其值进行迭代时,是否为?_Java - Fatal编程技术网

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()
从值集中删除条目。

有时我想知道什么会更快,测试看看发生了什么,或者问什么?有时我想知道什么会更快,测试看看发生了什么,或者问什么?