如果我有一个包含大量元素的数组而只有一个只有少数元素,那么代码会运行得更慢吗?即使我只是使用其中的一些。
我们说我有
int[] array = new int [9999999];
我放入9999999或者可以这样做是否可以?因为如果我没有在数组上加上一个值,它会说“局部变量可能没有被初始化”。我希望它基本上可以插入无限数量的数字。
答案 0 :(得分:0)
您可能需要List
而不是数组。前者是一种可以动态扩展以满足您需求的数据结构;后者要求你在开始之前选择尺寸。
性能会受到您在代码中执行的许多其他操作的影响,但我怀疑这将是其中之一。没有人可以从包括你在内的一行中辨别出来。
答案 1 :(得分:0)
好吧,试试吧。如果创建一个太大的数组,如
public static void main(String[] args) {
int []x =new int[999_999_999];
}
根据您的内存设置,会立即抛出OutOfMemoryError
。
但即使它没有抛出一个,分配该数组仍需要时间。
更好的方法是使用动态增长结构,例如List
。
但最好的方法是设计您的代码/算法,以便在可能的情况下不需要将所有内容放入一个巨大的数组中。