Iterator併發修改異常
阿新 • • 發佈:2018-12-17
併發修改異常: 當方法檢測到物件的併發修改,但不允許這種修改時,丟擲此異常。
// ConcurrentModificationException
產生的原因: 迭代器是依賴於集合而存在的,在判斷成功之後,集合當中增加了新的元素,而迭代器卻不知道,所以就報錯了,這個就叫併發修改異常。
package cn.hhy.test_04; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ListIteratorDemo2 { public static void main(String[] args) { //建立集合物件 List list = new ArrayList(); //新增物件 list.add("hello"); list.add("world"); list.add("java"); //迭代器遍歷 Iterator it = list.iterator(); while(it.hasNext()){ String string = (String) it.next(); //ConcurrentModificationException if(string.equals("world")){ list.add("javaee"); } } System.out.println("list:"+list); } }
所報的錯誤:
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at cn.hhy.test_04.ListIteratorDemo2.main(ListIteratorDemo2.java:23)