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(),这样子可以让你最大限度的自定义数组的复制范围和提高运行的效率。

你可能感兴趣的:(Java中数组的复制,clone,copyOf,arraycopy,copyOfRange)