java.util.ConcurrentModificationException異常

本人菜鳥一枚,最經自學安卓,試着寫一個小的App,遇到了一些問題,經過各種糾結,各種找資料,總算是解決了,於是,想把它寫出來,下次,再有誰遇到類似問題,解決起來可能也容易點(第一次寫,好緊張委屈)。

首先是一個java.util.ConcurrentModificationException異常,(我的java底子比較薄弱),百思不得其解,後來想到了書上其實有講過的,在用interator遍歷List的時候,如果需要刪除其中某個元素,則應該用interatorremove方法,而不能用Listremove方法。

可是異常的原因是什麼呢?我又在書上找到了(果然,書是人類最好的老師),當你需要對List遍歷時,少不了用到迭代器interator,可是如果你此時又用元素本身的remove方法,那麼,集合引用和迭代器引用在同時操作元素,通過集合獲取到對應的迭代器後,在迭代中,進行集合引用的操作,迭代器並不知道,所以會出現異常。

舉一反三,不只是元素的刪除操作此時不能用元素本身的方法,添加也不行,可是interator沒有add方法啊!Interator沒有可是ListInterator有啊,ListInteratorList集合特有的迭代器:interator it=list.listInterator;該列表迭代器接口具備了對元素增、刪、改、查的動作,用起來確實方便多了。問題就這樣解決了,很容易吧。

 


發佈了30 篇原創文章 · 獲贊 19 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章