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

arraycopy复制数组?

发布时间:2023-06-29 13:12:00

arraycopy是一个Java中的方法,用于复制一个数组的内容到另一个数组中。

该方法的声明如下:

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

参数解释:

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

- srcPos:源数组的起始位置,从该位置开始复制。

- dest:目标数组,即复制后的数组。

- destPos:目标数组的起始位置,从该位置开始复制。

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

使用arraycopy方法可以实现以下功能:

1. 复制整个数组:

   int[] srcArray = {1, 2, 3, 4, 5};

   int[] destArray = new int[srcArray.length];

   System.arraycopy(srcArray, 0, destArray, 0, srcArray.length);

   // 复制后的destArray为{1, 2, 3, 4, 5}

2. 复制部分数组:

   int[] srcArray = {1, 2, 3, 4, 5};

   int[] destArray = new int[3];

   System.arraycopy(srcArray, 1, destArray, 0, 3);

   // 复制后的destArray为{2, 3, 4}

3. 复制到另一个数组的中间位置:

   int[] srcArray = {1, 2, 3};

   int[] destArray = {4, 5, 6, 7, 8};

   System.arraycopy(srcArray, 0, destArray, 1, srcArray.length);

   // 复制后的destArray为{4, 1, 2, 3, 8}

需要注意的是,如果目标数组的长度小于复制的元素个数,则会抛出ArrayIndexOutOfBoundsException异常。

arraycopy方法实现了一个低级别的、效率较高的数组复制方式,比使用循环逐个复制元素更为高效。通常情况下,大部分开发人员应该使用arraycopy方法来复制数组,而非手动实现循环复制。