【发布时间】:2014-06-26 13:50:34
【问题描述】:
尝试从以下代码中的 ArrayList 中删除元素时,我收到了非法状态异常错误。我用谷歌搜索发现这个错误通常发生在代码中没有 iter.next() 时,但我很确定我的设置正确。
for (Iterator<String[]> x = PAuditjobslist.iterator(); x.hasNext(); ){
String[] temp = x.next();
if(temp.length > 2){
String PAdate = dateFudger(temp[PAuditDate],f);
int docCounter = 0;
for(String[] y: cancelledjobslist){
String Cndate = y[canJobDate];
if(temp[PAuditName].equals(y[canJobName]) && PAdate.equals(Cndate) &&
documentNameList.get(docCounter).equals(temp[PAuditDocName]) ){
x.remove();
}
docCounter++;
}
}
}
这是我遇到的错误
Exception in thread "main" java.lang.IllegalStateException
at java.util.ArrayList$Itr.remove(Unknown Source)
at csvfilter.main(csvfilter.java:63)
【问题讨论】:
-
x.remove()每个外循环只被调用一次吗?如果有疑问,请在删除后break。 -
是的,就是这样。在主列表中重复。谢谢