java - 复制数组——初始大小重要吗?

标签 java arrays

所以我是 Java 的新手,所以这个问题可能看起来有点傻,但无论如何......假设我们有这样的代码:

int[] oneArray = {1,2,3,4,5,6,7,8,9,10};
int[] anotherOne = new int[150];
anotherOne = Arrays.copyOf(oneArray, oneArray.length);

当我打印 anotherOne 时,无论初始大小是多少,在 copyOf 方法之后,它将是我们作为所述函数的第二个参数声明的内容。在上面的例子中,数组将缩减为 10 个元素(或者指针将开始指向内存中的另一个位置,我想是在此处创建了一个新的 10 元素数组?)。那么我是不是弄错了,或者 anotherOne 的初始大小根本没有意义,如果创建它只是为了在将来某个时候成为副本,那么应该在不指定大小的情况下对其进行初始化 (int[] anotherOne;)?

最佳答案

改为这样做。这将使您免于创建不需要的中间数组。

int[] oneArray = {1,2,3,4,5,6,7,8,9,10};
int[] anotherOne = Arrays.copyOf(oneArray, oneArray.length);

但是,如果您确实需要第二个数组的长度为 150,那么您可以这样写:

int[] oneArray = {1,2,3,4,5,6,7,8,9,10};
int[] anotherOne = new int[150];
System.arraycopy(oneArray, 0, anotherOne, 0, oneArray.length);

关于java - 复制数组——初始大小重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12464414/

相关文章:

java - 选中复选框时如何将项目移动到最后一个位置? (回收 View ,ViewHolder)

java - 自更新到 ADT 17 以来,使用 libgdx 的 Android 应用程序崩溃

c++ - 用更大的数组覆盖数组

php - 使用 PHP 将数组中的值插入 mysql

php - array_push 后数组为空

java - 通过 Selenium 和 Java 使用 GeckoDriver 和 Firefox 无法点击链接

java - 泛型 <? super >通配符

java - 将新列表添加到二维数组

c - 在 C 中寻找数组(与链表)哈希表实现

javascript - AngularJS中3维数组的ngModel?