【发布时间】:2013-04-20 16:21:43
【问题描述】:
我想显示出现在字符列表中的数字,然后删除该数字。这是我的代码:
打包mytrials;
import java.util.ArrayList;
import java.util.ListIterator;
public class MyTrials {
public static void main(String[] args) {
ArrayList<Character> list = new ArrayList<Character>();
list.add('a');
list.add('1');
list.add('5');
System.out.println(list.size());
for( ListIterator i = list.listIterator(list.size()); i.hasPrevious();){
Character c = (Character) i.previous();
if( Character.isDigit(c)){
System.out.println(c + " is a digit");
list.remove(c);
}
}
System.out.println(list.size());
}
}
这是错误信息:
3
5 is a digit
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$ListItr.previous(AbstractList.java:386)
at mytrials.MyTrials.main(MyTrials.java:27)
Java Result: 1
这个错误的原因是什么,如何纠正。
【问题讨论】:
-
您正在使用 ListIterator ,它不是故障安全迭代器,这就是您得到并发修改异常的原因
标签: java