时获得ConcurrentException。我有一个像下面的列表的东西: -穿越我在一个非常特殊的状态列表
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
现在,当我做多的类型遍历,如采用先进的,迭代器,以及正常的循环,下面是示例代码片段: -
1 >高级循环: -
try {
for(String a : list) {
System.out.println(a);
list.add("f");
}
} catch (Exception e) {
e.printStackTrace();
}
2>迭代: -
try {
Iterator<String> itr = list.iterator();
while(itr.hasNext()) {
System.out.println(itr.next());
list.add("f");
}
} catch (Exception e) {
e.printStackTrace();
}
3>正常循环: -
for (int i=0;i<list.size();i++) {
System.out.println(list.get(i));
list.add("f");
}
现在,特有的问题是,采用了先进的当for循环和迭代,我得到以下异常: -
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
the reason i know, that while iterating through a list, one cannot modify it parallely.
但是当我用正常的循环,那么它的工作原理好吧,我是否缺少什么?
请帮忙!!! ..
那么怎么样的正常循环,为什么它的工作原理? – 2011-04-13 04:59:14
添加无效由List创建的Iterator对象,正常for循环不会创建迭代器,因此没有任何操作失效,因此它可以工作 – sbridges 2011-04-13 05:04:40