import java.util.ArrayList;
import java.util.List;
public class TestInt {
public static void main(String args[]){
List<Integer> a = new ArrayList<Integer>();
a.add(3);
a.add(4);
a.add(5);
a.add(6);
a.add(7);
a.add(8);
for(Integer f: a){
a.remove(f);
}
}
}
import java.util.List;
public class TestInt {
public static void main(String args[]){
List<Integer> a = new ArrayList<Integer>();
a.add(3);
a.add(4);
a.add(5);
a.add(6);
a.add(7);
a.add(8);
for(Integer f: a){
a.remove(f);
}
}
}
http://www.blogjava.net/EvanLiu/archive/2008/08/31/224453.html
看看这个网站吧,帮你找了一下
a.remove(f);
}
这样循环是不可以对a进行删除操作的可以for(int i;xxx;xx)
来循环
不多解释了, 我这个帖子里分析的算清楚了
你在add的时候,实际上是临时创建一个对象3然后加到list里面,而后面删除的全是新的对象。这些新的对象在list中并不存在。虽然里面的值可能一样。记住,java超作对象的时候,除了基本类型,都是属于指针型的。
为什么for(int i=0;i<10;i++)这种方式可以的?
所以 Iterator 在工作的时候是不允许被迭代的对象被改变的。但你可以使用 Iterator 本身的方法 remove() 来删除对象, Iterator.remove() 方法会在删除当前迭代对象的同时维护索引的一致性。