List<Integer> list=new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
for (Integer integer : list) {
if(integer==3){
list.remove(integer);
}以上这段代码不报错,但是 List<Integer> list=new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
for (Integer integer : list) {
if(integer==3){
list.remove(integer);
}
}这段代码会报错,为什么
List<Integer> list=new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
for (Integer integer : list) {
if(integer==2){
list.remove(integer);
}
}手划了下 这个是报错的
在网上收一下有解释
list.add(1);
list.add(2);
list.add(3);
list.add(4);
for (Integer integer : list) {
if(integer==2){
list.remove(integer);
break;
}
}
这样就不会报错了
List<String> strList =new ArrayList<String>();
strList.add("1");
strList.add("2");
strList.add("3");
strList.add("4");
for(String data:strList){
if("3".equals(data)){
strList.remove(data);//remove之前strList的modCount为4,remove之后modCount为5 remove之后没有报错
}
}List<Integer> list=new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
for (Integer integer : list) {
if(integer==2){
list.remove(integer);//remove之前strList的modCount为4,remove之后modCount为5 remove之后报错
}
}各种不明白,求解
这里有解释。看着解释还不错