Java LinkedList投票未完成

时间:2018-06-21 14:02:58

标签: java

我写了以下代码段:

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,因此应该打印所有内容?

2 个答案:

答案 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-每次循环迭代后进行计算