java hashMap并发修改异常

Jun*_*Liu 0 java concurrency

假设你有一个HashMap m ,里面已经有一个键值对<"key1", object>.

你能做到以下几点吗?

m.put("newkey", m.remove("key1"))
Run Code Online (Sandbox Code Playgroud)

你会得到一个ConcurrentModificationException

Chr*_*ris 7

只要它不在遍历hashMap条目的循环体中,您就可以这样做.可行的方法是remove操作将在put操作之前执行并完成,因此它在语义上等同于在2行中执行它.