list.addFirst(1);
list.addFirst(2);
list.addFirst(3);
for(int i=0;i<list.size();i++)
System.out.println(list.remove(i));
为什么输出结果为
3
1
而不是
3
2
1
?
for(int i=0;i<list.size();i++)
System.out.println(list.remove(i));
每次循环,都会算一次list.size
每次删除,i下标对应的元素都会发生变化
所以应该
for(int i=list.size()-1; i >=0;i--)
从后往前删
楼上正解,随着元素的删除,集合的长度是在不断的变的,所以不会像数组那样按照期待的方式输出。