问题
使用ArrayList数据结构, 在迭代的请求页面进行数据刷新, 控制台报错
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.next(ArrayList.java:860)
at
详细问题
2022-09-27 11:18:00.135 17592-17592/com.example.electronicmall E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.electronicmall, PID: 17592
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.next(ArrayList.java:860)
at com.example.electronicmall.test.SuperAdmin.SuperAdminReportUserReportingActivity$12$1.run(SuperAdminReportUserReportingActivity.java:626)
at android.os.Handler.handleCallback(Handler.java:900)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:219)
at android.app.ActivityThread.main(ActivityThread.java:8668)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)
解决方案
不采用迭代方式操作数据, 采用for循环操作
对于笔者而言 即将
ArrayList<String> sites = new ArrayList<String>();
terator<String> it = sites.iterator();
while(it.hasNext()) {
// code 对于it操作
}
改为
ArrayList<String> sites = new ArrayList<String>();
for (int i = 0; i < sites.size(); i++) {
// code 对于sites.get(i)操作
}
原因
对Vector、ArrayList等可迭代的数据结构, 若采用迭代操作, 在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈

本文讲述了在Android应用中遇到`ConcurrentModificationException`的问题,当使用ArrayList迭代刷新数据时。解决方法是改用for循环操作,解释了为何迭代时修改列表会引发异常,并给出了相关代码示例和原因分析。


被折叠的 条评论
为什么被折叠?



