java.util.ConcurrentModificationException

来源:互联网 发布:java就业班视频 编辑:程序博客网 时间:2024/06/06 07:38

撰写多线程代码时,你遇到过多少次下面的提示:
Exception in thread "main" java.util.ConcurrentModificationException  
 

这个异常产生的原因有几个。一是遍历时直接对集合调用删除操作而不是在枚举器上。二是不同的线程试图对集合进行增删操作的时候。

下面的代码则会抛出该异常:

for (String s : map.keySet()) {      if ("val".equals(s))         map.remove(s); }


正确的方法应该这样:

  Iterator it = map.keySet().iterator();  while (it.hasNext()) {      String obj = it.next();      if ("2".equals(obj)) {          it.remove();      } }


 

原创粉丝点击