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是要复制的元素数量。它是一种高效的数组复制方法,适用于需要在不同数组之间复制一定数量元素的场景。
