public class ListTest {
@Test
public void test() {
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()) {
String item = iterator.next();
if ("2".equals(item)) {
iterator.remove();
}
}
}
以上是正确写法
以下是错误写法
public class ListTest {
@Test
public void test() {
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
for (String item : list) {
if ("2".equals(item)) {
list.remove(item);
}
}
}
因为程序调用如下,再next方法后,会做check检查是否修改过
原文:https://www.cnblogs.com/nuli/p/14598754.html