本人菜鳥一枚,最經自學安卓,試着寫一個小的App,遇到了一些問題,經過各種糾結,各種找資料,總算是解決了,於是,想把它寫出來,下次,再有誰遇到類似問題,解決起來可能也容易點(第一次寫,好緊張)。
首先是一個java.util.ConcurrentModificationException異常,(我的java底子比較薄弱),百思不得其解,後來想到了書上其實有講過的,在用interator遍歷List的時候,如果需要刪除其中某個元素,則應該用interator的remove方法,而不能用List的remove方法。
可是異常的原因是什麼呢?我又在書上找到了(果然,書是人類最好的老師),當你需要對List遍歷時,少不了用到迭代器interator,可是如果你此時又用元素本身的remove方法,那麼,集合引用和迭代器引用在同時操作元素,通過集合獲取到對應的迭代器後,在迭代中,進行集合引用的操作,迭代器並不知道,所以會出現異常。
舉一反三,不只是元素的刪除操作此時不能用元素本身的方法,添加也不行,可是interator沒有add方法啊!Interator沒有可是ListInterator有啊,ListInterator是List集合特有的迭代器:interator it=list.listInterator;該列表迭代器接口具備了對元素增、刪、改、查的動作,用起來確實方便多了。問題就這樣解決了,很容易吧。