/**
* 不要在 foreach 循环里进行元素的 remove / add 操作。 remove 元素请使用 Iterator
* 方式,如果并发操作,需要对 Iterator 对象加锁。
*/
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
//1.foreach
for (String item : list) {
if ("2".equals(item)) {
list.remove(item);
}
}
// 普通for循环
for(int i = 0; i < list.size(); i++){
if ("2".equals(list.get(i))){
list.remove(i);
}
}
//3.iterator迭代器
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()){
String item = iterator.next();
if ("2".equals(item)) {
iterator.remove();
}
}
System.out.println(list);
}
方案1 结果
方案2,3 结果