1. 程式人生 > >ConcurrentModificationException: 集合異常——產生原因和解決方法!

ConcurrentModificationException: 集合異常——產生原因和解決方法!

:注意事項:迭代器在使用的時候,有人為了方便,如下使用就會有問題

System.out.println(((Student)it.next()).getName()+”---”+((Student)it.next()).getAge());

注意事項:迭代器在使用的時候,有人為了方便,如下使用就會有問題

System.out.println(((Student)it.next()).getName()+”---”+((Student)it.next()).getAge());

 

NoSuchElementException:沒有這樣的元素,因為你已經找到最後了。

 

ConcurrentModificationException:當方法檢測到物件的併發修改,但不允許這種修改時,丟擲此異常。

 

 * 產生的原因:

 * 迭代器是依賴於集合而存在的,在判斷成功後,集合的中新添加了元素,而迭代器卻不知道,所以就報錯了,這個錯叫併發修改異常。

 * 其實這個問題描述的是:迭代器遍歷元素的時候,通過集合是不能修改元素的。

 * 如何解決呢?

 * A:迭代器迭代元素,迭代器修改元素

 * 元素是跟在剛才迭代的元素後面的。

 * B:集合遍歷元素,集合修改元素(普通for)

 * 元素在最後新增的。