如果我有一个大数组,代码运行速度会慢吗?

时间:2016-10-25 19:41:59

标签: java

如果我有一个包含大量元素的数组而只有一个只有少数元素,那么代码会运行得更慢吗?即使我只是使用其中的一些。

我们说我有

int[] array = new int [9999999];

我放入9999999或者可以这样做是否可以?因为如果我没有在数组上加上一个值,它会说“局部变量可能没有被初始化”。我希望它基本上可以插入无限数量的数字。

2 个答案:

答案 0 :(得分:0)

您可能需要List而不是数组。前者是一种可以动态扩展以满足您需求的数据结构;后者要求你在开始之前选择尺寸。

性能会受到您在代码中执行的许多其他操作的影响,但我怀疑这将是其中之一。没有人可以从包括你在内的一行中辨别出来。

答案 1 :(得分:0)

好吧,试试吧。如果创建一个太大的数组,如

public static void main(String[] args) {
    int []x =new int[999_999_999];
}

根据您的内存设置,会立即抛出OutOfMemoryError

但即使它没有抛出一个,分配该数组仍需要时间。

更好的方法是使用动态增长结构,例如List

但最好的方法是设计您的代码/算法,以便在可能的情况下不需要将所有内容放入一个巨大的数组中。