我写了以下代码段:
import java.util.LinkedList;
public class Main
{
public static void main(String args[])
{
LinkedList<Integer> a = new LinkedList<>();
for (int i = 0; i < 10; i++)
{
a.add(i);
}
System.out.println("Size: " + a.size());
for (int d = 0; d < a.size(); d++) // d from 0 to 9
{
System.out.println(a.poll());
}
System.out.println("Another poll: " + a.poll());
System.out.println("Remaining: " + a.toString());
}
}
具有以下输出:
Size: 10
0
1
2
3
4
Another poll: 5
Remaining: [6, 7, 8, 9]
为什么即使循环遍历LinkedList的整个大小,第一个打印的for循环也只打印0-4,因此应该打印所有内容?
答案 0 :(得分:1)
Nvm,明白了! a.size()每次轮询a时都会递减,因此d仅增加到4。
答案 1 :(得分:0)
for (int d = 0, size = a.size(); d < size; d++) {
System.out.println(a.poll());
}
注意:
for(x;y;z) {}
共有3个部分:
x
-在循环开始时计算一次
y
-在每次循环迭代之前进行计算
z
-每次循环迭代后进行计算