0

假设您有一个输出不同大小数组的方法。

在使用它之前,您需要创建一个数组引用变量。在你这样做之前,你需要找到数组长度,例如

int[] intArray = new int[methodReturnsArray().length]

然后您可以将 intArray 设置为由 methodReturnsArray() 生成的数组。

对此我感到有点不安,因为我们调用了两次 methodReturnsArray():一次是为了找出数组有多大,一次是为了将它设置为等于引用变量。

两次调用该方法是浪费资源,还是只创建一次数组(当您找到它的大小时)?

编辑:我知道您可以将 intArray 初始化为数组返回的方法。但是由于一些复杂的原因(与在循环中调用“methodReturnsArray”有关,每次迭代使用不同大小的数组),我需要知道调用两次是否会浪费计算资源。

4

1 回答 1

1

这取决于您将如何填充新的数组变量。

但是常见的方法是引入新的局部变量来保存对原始数组的引用methodReturnsArray。IE:

int[] methodArray = methodReturnsArray();
int[] intArray = new int[methodArray.length];
...

那么复制数组的最好方法就是System.arrayCopy(...)方法。这种方法在任何情况下都有效,它会阻止你在方法中做methodReturnsArray两次。

于 2013-01-27T21:31:22.643 回答