有没有更快的方法来生成N整数列表

Ank*_*kit 3 java

我知道这是一个非常新手的问题,但没有任何东西进入我的脑海.目前我正在尝试这一点,但对于这么大的数字来说,这是效率最低的方式.帮帮我.

int count = 66000000;
LinkedList<Integer> list = new LinkedList<Integer>();
        for (int i=1;i<=count;i++){
            list.add(i);
            //System.out.println(i);
        }
Run Code Online (Sandbox Code Playgroud)

编辑:

实际上我已经对整个列表(队列)重复执行操作(比如在一个条件下删除一些元素并再次添加),所以不得不迭代整个列表变得如此慢,用这样的数字花了超过10分钟.

Sam*_*ica 8

输出的大小是O(n)因此,使用填充列表的算法几乎不可能比O(n)时间复杂度更有效.

你花了很多时间将数字打印到屏幕上,而不是实际用于生成列表.如果你真的想加速这段代码,请删除

System.out.println(i);
Run Code Online (Sandbox Code Playgroud)

另外,我注意到你正在使用a LinkedList,如果使用数组(或基于数组的列表),它应该更快.

  • O()表示法仅衡量复杂性,而不是实际性能.未指明的常数很重要,并且通常比固有的复杂性更重要.可能使用数组而不是列表会大大缩短时间.一些循环展开也可能有所帮助. (2认同)