For循环不评估所有条目

时间:2018-08-05 22:40:27

标签: java for-loop arraylist

这是我的代码:

import java.util.List;
import java.util.ArrayList;

public static void main(String[] args){

    List<Integer> possible = new ArrayList<Integer>();

    for(int i=0; i<1000000; i++){
        possible.add(i);
    }

    for(int i: possible){
        System.out.println(i);
    }
}

我希望输出打印介于0到999,999之间的值,并且中间有空格。但是,我的输出是:

208
850209
850210
850211... all the way to 999999

为什么我的for循环跳过成千上万个值?我尝试用longdouble替换int。两者都在运行时跳过值。有什么帮助吗?我只是试图创建一个ArrayList值,范围是0到999,999。

3 个答案:

答案 0 :(得分:5)

您的程序运行正常。但是,标准控制台将仅显示很多行。因此,您的大多数输出​​都将被切断,从而使其似乎跳过了数千个数字

根据您使用的IDE,应该可以更改此设置。转到控制台并更改控制台缓冲区大小。

我使用的是Eclipse,因此在Eclipse中进行更改的方法是先转到window,然后转到preferences,然后在run/debug下应该有一个console部分,其中包含缓冲区大小

答案 1 :(得分:0)

它有效,我想它只是没有打印到控制台上。如果在加完所有数字之后再打印之前设置一个断点,则应该看到数组的大小为100000。

答案 2 :(得分:0)

输出控制台对打印值有限制。

您的列表已正确填写,如果您尝试打印其大小,将会发现它很好用。

但是,您可以增加控制台输出限制

要这样做,请检查此答案https://stackoverflow.com/a/33800176/5335885