Java复制数组的4种方法:Arrays.copyOf(), Arrays.copyOfRange(), System.arraycopy(), object.clone()

参考:

C语言中文网

博客园cnblogs

代码:

int[] a = {1,2,3,4,5};

int[] b = Arrays.copyOf(a,10);           //有返回值
int[] c = Arrays.copyOfRange(a,3,8);     //有返回值
int[] d = new int[10];
System.arraycopy(a,0,d,1,3);             //没有返回值!
int[] e = a.clone();                     //有返回值

>>
b: [1, 2, 3, 4, 5, 0, 0, 0, 0, 0]
c: [4, 5, 0, 0, 0]
d: [0, 1, 2, 3, 0, 0, 0, 0, 0, 0]
e: [1, 2, 3, 4, 5] 

区别:

Arrays.copyOf()和Arrays.copyOfRange()返回一个新建的对象,不需要预先建立对象,其实在方法内部调用了System.arraycopy()方法;

System.arraycopy()无返回值,需要先new一个对象作为方法的输入参数;

object.clone()方法返回一个新建的对象,不需要预先建立对象。(返回类型是Object类,可能需要进行强制类型转换)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值