对Vector
、ArrayList
在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常
Caused by: java.util.ConcurrentModificationException
eg:
ArrayList<String> mWidgets = new ArrayList<>();
mWidgets.add("1");
mWidgets.add("2");
mWidgets.add("3");
mWidgets.add("4");
mWidgets.add("5");
mWidgets.add("6");
mWidgets.add("7");
for(String string:mWidgets){
if(string.equals("2")){
mWidgets.remove(string);
}
}
异常如下:
处理方法:
Iterator<String> iterator = mWidgets.iterator();
while (iterator.hasNext()){
String aaa = iterator.next();
Log.i("shenlong","string="+aaa);
if(aaa.equals("2")){
iterator.remove();
}
}