arraycopy()函数:使用和例子
arraycopy() 函数是 Java 中用于复制数组的方法。该方法可以将一个数组中的元素复制到另一个数组中,可以选择性地指定复制的起始位置和目标位置。arraycopy() 方法是一个静态方法,所以可以直接通过类名来调用。
arraycopy() 方法的语法如下所示:
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
参数解释:
- src:源数组,需要复制的对象。
- srcPos:源数组中的起始位置。
- dest:目标数组,复制后的对象将放置在该数组中。
- destPos:目标数组中的起始位置。
- length:需要复制的元素数量。
arraycopy() 方法的调用将按照以下规则进行复制操作:
- 将源数组的 srcPos 位置开始的 length 个元素复制到目标数组的 destPos 位置开始的位置。
- 如果 src 和 dest 是同一个数组,并且源数组的 srcPos 大于目标数组的 destPos,那么复制操作将按照逆序进行。
下面是几个使用 arraycopy() 函数的例子:
#### 例子1:数组完全复制
int[] sourceArray = {1, 2, 3, 4, 5};
int[] targetArray = new int[sourceArray.length];
System.arraycopy(sourceArray, 0, targetArray, 0, sourceArray.length);
// 打印目标数组
for (int element : targetArray) {
System.out.print(element + " ");
}
输出:
1 2 3 4 5
在上面的例子中,我们将源数组 sourceArray 的所有元素都复制到目标数组 targetArray 中。
#### 例子2:部分数组复制
int[] sourceArray = {1, 2, 3, 4, 5};
int[] targetArray = new int[3];
System.arraycopy(sourceArray, 2, targetArray, 0, 3);
// 打印目标数组
for (int element : targetArray) {
System.out.print(element + " ");
}
输出:
3 4 5
在上面的例子中,我们将源数组 sourceArray 的第二个元素开始的三个元素复制到目标数组 targetArray 中。
#### 例子3:逆序数组复制
int[] sourceArray = {1, 2, 3, 4, 5};
int[] targetArray = new int[5];
System.arraycopy(sourceArray, 1, targetArray, 3, 3);
// 打印目标数组
for (int element : targetArray) {
System.out.print(element + " ");
}
输出:
0 0 0 2 3 4
在上面的例子中,我们将源数组 sourceArray 的 个元素开始的三个元素复制到目标数组 targetArray 中,由于 targetArray 中的复制起始位置在 destPos=3,大于源数组的起始位置 srcPos=1,所以复制操作将按照逆序进行。
arraycopy() 方法是一个高效的方法,可以快速地进行数组复制操作。注意,在使用 arraycopy() 方法进行数组复制时,需要保证目标数组的长度足够大,否则会抛出 ArrayIndexOutOfBoundsException 异常。
