java.lang.System.arraycopy() 方法复制指定的源数组的数组 ,在被copy的数组指定的位置开始,到目标数组的指定位置。
具体方法如下:
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
/**
src:源数组;
srcPos:源数组要复制的起始位置;
dest:目的数组;
destPos:目的数组放置的起始位置;
length:复制的长度.
注意:src 和 dest都必须是同类型或者可以进行转换类型的数组.
*/
应用场景:在arraylist源码中,实现add,remove方法的时候用到。 处理大量的字节。
示例详解
System.arraycopy(int[] arr, int star,int[] arr2, int start2, length);
/**
5个参数,
第一个参数是要被复制的数组
第二个参数是被复制的数字开始复制的下标
第三个参数是目标数组,也就是要把数据放进来的数组
第四个参数是从目标数据第几个下标开始放入数据
第五个参数表示从被复制的数组中拿几个数值放到目标数组中
比如:
数组1:int[] arr = { 1, 2, 3, 4, 5 };
数组2:int[] arr2 = { 5, 6,7, 8, 9 };
运行:System.arraycopy(arr, 1, arr2, 0, 3);
得到:
int[] arr2 = { 2, 3, 4, 8, 9 };
过程分析:
先看第1、2、5个参数,得出要从arr中从下标为1的数组中拿出三个数值:2,3,4
然后看第3、4个参数,知道要在arr2中从下标为0开始放入数据,放入的个数也是第五个参加决定的这里是3个
所有最后的结果就是:2,3,4(加入的) + 8,9(原来的)
比如:System.arraycopy(arr , 1 , arr2 , 2 , 3);
表示的是从数组arr中下标为1的位置取出3个数据,放到数组arr2中从下标为2的位置,放入3个数据。
*/