Java处理java.util.ConcurrentModificationException异常

Posted 教程之父

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java处理java.util.ConcurrentModificationException异常相关的知识,希望对你有一定的参考价值。

代码:

public static void reduce(HashMap<String, Integer> hashMap, final Integer count) {
Iterator<String> iter = hashMap.keySet().iterator();
String key;

while(iter.hasNext()) {
key = iter.next();

if (!hashMap.get(key).equals(count)) {
hashMap.remove(key);
}
}
return hashMap;
}

 

异常:

Exception in thread "main" java.util.ConcurrentModificationException

 

原因:

  在迭代的过程中进行了add(),remove()操作。其实仔细想想也能理解,如果在迭代中使用remove(),那第二轮循环时的next()究竟指向谁?!

 

以上是关于Java处理java.util.ConcurrentModificationException异常的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Lock取代synchronized

java异常处理详解!!

大一Java异常处理问题

java异常处理有关的问题...急

Java中的异常处理机制的简单原理和应用。

Java的异常处理语法