将数组内容复制到新数组

时间:2014-03-24 16:11:08

标签: java arrays copy

我正在尝试编写一个名为reallocate的方法,它接受一个名为theDirectory的数组,并将其内容复制到一个名为newDirectory的新数组中,该数组的容量是其两倍。然后theDirectory设置为newDirectory。

这是我到目前为止所做的,但是我仍然坚持如何将内容复制到newDirectory,所以任何帮助都会非常感激。

private void reallocate()
   {
       capacity = capacity * 2;
       DirectoryEntry[] newDirectory = new DirectoryEntry[capacity];
       //copy contents of theDirectory to newDirectory
       theDirectory = newDirectory;

   }

提前致谢。

5 个答案:

答案 0 :(得分:2)

您可以使用System.arrayCopy

API here

目标数组具有双倍容量的简单示例:

int[] first = {1,2,3};
int[] second = {4,5,6,0,0,0};
System.arraycopy(first, 0, second, first.length, first.length);
System.out.println(Arrays.toString(second));

<强>输出

[4, 5, 6, 1, 2, 3]

答案 1 :(得分:1)

遍历旧数组的元素,并将每个元素分配给新数组中的相应位置。

答案 2 :(得分:1)

使用System.arraycopy (theDirectory, 0, newDirectory, 0, theDirectory.length)

答案 3 :(得分:1)

看一下System.arraycopy():)

http://docs.oracle.com/javase/7/docs/api/java/lang/System.html#arraycopy(java.lang.Object,int,java.lang.Object,int,int)

应该是

之类的东西
System.arraycopy(oldArray, 0, newArray, 0, oldArray.size);

答案 4 :(得分:0)

检查java.util.Arrays.copyOf()。这就是你想要的:

theDirectory = Arrays.copyOf(theDirectory, theDirectory.length * 2);