欢迎访问宙启技术站
智能推送

arraycopy()函数复制数组的方法是什么?

发布时间:2023-07-01 03:31:02

arraycopy()函数是Java中用于复制数组的方法。它允许在两个数组之间复制指定范围内的元素,并且可以用于复制基本类型数组和对象数组。arraycopy()函数的签名如下:

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

其中:

- src:源数组,即要复制的数组。

- srcPos:源数组中要开始复制的起始位置。

- dest:目标数组,即要将元素复制到的数组。

- destPos:目标数组中要开始复制的起始位置。

- length:要复制的元素数量。

下面是arraycopy()函数使用的一些示例:

1. 复制整个数组:

int[] sourceArray = {1, 2, 3, 4, 5};
int[] targetArray = new int[sourceArray.length];
System.arraycopy(sourceArray, 0, targetArray, 0, sourceArray.length);

这将复制整个sourceArray数组的元素到targetArray数组中。

2. 复制部分数组:

int[] sourceArray = {1, 2, 3, 4, 5};
int[] targetArray = new int[3];
System.arraycopy(sourceArray, 2, targetArray, 0, 3);

这将从sourceArray数组的索引2开始,复制3个元素到targetArray数组中。

3. 复制对象数组:

Person[] sourceArray = {new Person("John"), new Person("Mary"), new Person("Tom")};
Person[] targetArray = new Person[sourceArray.length];
System.arraycopy(sourceArray, 0, targetArray, 0, sourceArray.length);

这将复制整个sourceArray对象数组的元素到targetArray对象数组中。

需要注意的是,arraycopy()函数是浅拷贝,即如果源数组中的元素是对象引用,只会复制引用本身而不会复制对象。如果需要深拷贝,即复制对象本身而不是引用,可以通过其他方式实现,如使用clone()方法。

arraycopy()函数的时间复杂度为O(n),其中n是要复制的元素数量。它是一种高效的数组复制方法,适用于需要在不同数组之间复制一定数量元素的场景。