Java中数组的复制,clone,copyOf,arraycopy,copyOfRange

java中我们经常要使用数组的复制功能,除了直接用for循环来完成外,我们还可以直接使用Java自带的方法来实现,因此我们可以选择合适的数组赋值的方式来完成。


定义一个整型数组a
int[] a = {1, 2, 3};


1. clone()方法
int[] b = a.clone();


2. Arrays.copyOf()
int[] c = Arrays.copyOf(a, a.length);
使用说明:(内部调用了System.arraycopy())
Arrays.copyOf(src, length);
Src:  原数组
length: 复制长度为[0, min(src.length, length))


3. System.arraycopy()
int[] d = new int[a.length];
System.arraycopy(a, 0, d, 0, d.length);
使用说明:
arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
src: 源数组;    
srcPos: 源数组要复制的起始位置;
dest: 目的数组;    
destPos: 目的数组放置的起始位置;    
length: 复制的长度。


4. Arrays.copyOfRange()
Int[] e = Arrays.copyOfRange(a, 0, a.length);
使用说明:(内部调用了System.arraycopy())
Arrays.copyOfRange(Object src, int start, int end)
src: 源数组;
start: src数组的开始位置;
end: src数组的结束位置;

总结
Java中的复制基本都是调用了方法arraycopy(),从运行机制来说这个方法效率是最高的。因此涉及到数组的复制时,可以直接使用arraycopy(),这样子可以让你最大限度的自定义数组的复制范围和提高运行的效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值