【发布时间】:2014-09-20 22:18:56
【问题描述】:
在尝试运行应用程序时,我在跟踪中遇到了以下故障。我不明白这个错误背后的原因。它是由static 关键字引起的,还是一个线程试图修改此代码段中的某些内容?重要的是,我该如何解决这个错误?
故障跟踪
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
at java.util.HashMap$KeyIterator.next(Unknown Source)
代码段
// Type of holder is --> HashMap<Integer, HashMap<String, Integer>>
Set<Integer> keys = holder.keySet();
HashMap<String, Integer> temp = new HashMap<String, Integer>();
for(int iter : keys){
temp = holder.get(iter);
if(temp == null || temp.size() == 0){
holder.remove(iter);
}
}
我应该在某些语句或所有语句周围使用锁定吗?不知道真正的问题限制了寻找解决方案。无论如何,谢谢
【问题讨论】:
-
使用
java.util.Iterator,实际上不是HashMap error。为什么不像你的错误所说的那样首先使用java.util.ConcurrentModificationException谷歌?
标签: java