arraycopy复制数组?
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方法来复制数组,而非手动实现循环复制。
