public static void main(String[] args){
int i1[]={5,3,4,1,2,6,9,8,7};//源数组
int i2[]={11,10,15,13,14,12,18};//目标数组
System.arraycopy(i1,1,i2,1,3);//复制内容
print(i2); //打印i2数组
}
public static void print(int x[]){ //对数组循环输出
for (int z=0;z<x.length;z++){
System.out.print(x[z]+"\t");
}
}
代码执行结果为:11 3 4 1 14 12 18
使用java类库中的方法完成数组复制的操作很方便快捷,刚看到这段代码有点懵逼。为什么i2数组输出结果是11 3 4 1 14 12 18。后来才恍然大悟!
分析:1、i1数组是源数组,i2数组是目标数组。
2、System.arraycopy(i1,1,i2,1,3);这段代码中:i1是原数组名称,1是源数组开始点,i2是目标数组名称,1是目标数组开始点,3是复制长度。
根据以上两点结合起来说,复制的内容操作流程是:根据System.arraycopy()方法,是复制源数组的内容到目标数组里面,然后输出。排前面的是属于原数组,后面的则是目标数组,最后一个就是复制长度。
天呐,就是这么简单。当时我傻傻的看着输出结果那几个数字发呆了几十分钟,搞不懂为啥会输出这样的结果,太笨了我。