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

arraycopy()函数:使用和例子

发布时间:2023-11-12 15:18:13

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 位置开始的位置。

- 如果 srcdest 是同一个数组,并且源数组的 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 异常。