我正在尝试编写一种称为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]