不要在foreach循环里进行remove/add操作。
remove元素请使用Iterator方法
如果并发操作,需要对Iterator对象加锁。
正例:
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
Iterator<String> iterator =list.iterator;
while(iterator.hasNext()){
Strng item=iterator.next();
if(条件){
iterator.remove();
}
}
反例:
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
for (String s : list) {
if ("3".equals(s)) list.remove(s);
System.out.println(list.size());
System.out.println(s+":"+list);
}