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

到目前为止,这是我所拥有的,但是我仍然坚持如何将内容复制到newDirectory上,因此我们将不胜感激。

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

   }


提前致谢。

最佳答案

您可以使用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]

10-08 12:37