关于数组的复制

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()方法,是复制源数组的内容到目标数组里面,然后输出。排前面的是属于原数组,后面的则是目标数组,最后一个就是复制长度。

天呐,就是这么简单。当时我傻傻的看着输出结果那几个数字发呆了几十分钟,搞不懂为啥会输出这样的结果,太笨了我。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值