代码原理解释:
从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束,从src引用的源数组到dest引用的目标数组,数组组件的一个子序列被复制下来,被复制的组件的编号等于length
参数。源数组中位置srcPos到srcPos+length-1之间的组件被分别复制到目标数组中的destPose到destPose+length-1位置。
//数组元素拷贝
class ArrayCopeDemo
{
public static void main(String[] args)
{
int[] src=new int[]{1,2,3,4,5,6,7,8,9,10}//源数组
int[] dest=new int[10];//目标数组为{0,0,0,0,0,3,4,5,6,0}
//需求:从src数组中拷贝3,4,5,6元素到dest数组中
printArray(dest);
copy(src,dest,4,2,5);
printArray(dest);
}
static void copy(int[] src,int[] dest,int length,int srcPos,int destPos){
//index表示每次需要拷贝元素的序列
for(int index=srcPose;index<srcPose+length;index++)
{
dest[destPos]=src[index];
destPos++;
}
}
static void printArray(int[] arr) {
if(arr==null) {
System.out.println("null");
return;
}
String ret="[";
for(int index=0;index<arr.length;index++) {
ret+=arr[index];
//如果当前index不是最后一个索引,则拼接“,”
if(index!=arr.length-1) {
ret=ret+",";
}
}
ret=ret+"]";
System.out.println(ret);
}
}
代码存在的问题:
[1]只能拷贝int类型的数组
[2]代码不够健壮,数据都需要重新检查, length, srcPos,destPos这些值都应该大于等于零,srcPose+length的值不能够超过目标数组的长度。