For each循环中使用remove方法。

时间:2022-05-15 12:39:14
List<String> list =new ArrayList<String>();
list.add("boss");
list.add("good");
list.add("No");
list.add("Fine");
System.out.println(list);//[boss, good, No, Fine]
Collections.sort(list);
System.out.println(list);//[Fine, No, boss, good]
list.add("我们");
list.add("你就是");
list.add("他很调");
list.add("明天见");
int i=;
while(true){ for (String dwonCountCmd : list) { if (i<) {
System.out.println(dwonCountCmd+i);
i++;
} else{
//在循环中把集合的一个元素移除了,如果此时不break的话,就会报错
list.remove(dwonCountCmd);
System.out.println(list.toString());
break;
}
}
}

会报这种错

Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
at java.util.AbstractList$Itr.next(Unknown Source)
at Test2.main(Test2.java:47)