java迭代器 异常_java-迭代器并发修改异常
A:迭代器的并發修改異常
/*
* 迭代器的并發修改異常 java.util.ConcurrentModificationException
* 就是在遍歷的過程中,使用了集合方法修改了集合的長度,不允許的
*/
public class ListDemo1 {
public static void main(String[] args) {
List list = new ArrayList();
list.add("abc1");
list.add("abc2");
list.add("abc3");
list.add("abc4");
//對集合使用迭代器進行獲取,獲取時候判斷集合中是否存在 "abc3"對象
//如果有,添加一個元素 "ABC3"
Iterator it = list.iterator();
while(it.hasNext()){
String s = it.next();
//對獲取出的元素s,進行判斷,是不是有"abc3"
if(s.equals("abc3")){
list.add("ABC3");
}
System.out.println(s);
}
}
}
運行上述代碼發生了錯誤 java.util.ConcurrentModificationException這是什么原因呢?
在迭代過程中,使用了集合的方法對元素進行操作。
導致迭代器并不知道集合中的變化,容易引發數據的不確定性。
并發修改異常解決辦法:
在迭代時,不要使用集合的方法操作元素。
或者通過ListIterator迭代器操作元素是可以的,ListIterator的出現,解決了使用Iterator迭代過程中可能會發生的錯誤情況。
總結
以上是生活随笔為你收集整理的java迭代器 异常_java-迭代器并发修改异常的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java并发编程实战-第三章-对象的共享
- 下一篇: 创建型模式二:工厂方法模式