java语言复制数组的四种方法
JAVA语言的下面几种数组复制方法中,哪个效率最高?
A.for循环逐一复制
B.System.arraycopy
C.System.copyof
D.使用clone方法
效率:System.arraycopy > clone > Arrays.copyOf > for循环
1、System.arraycopy的用法:
其为native方法,即原生态方法,关键字native说明它不是用java语言写的,而是调用其他语言的代码,因此效率最高
参数: src
- 源数组。
srcPos
- 源数组中的起始位置。
dest
- 目标数组。
destPos
- 目标数据中的起始位置。
length
- 要复制的数组元素的数量
2、clone 的用法
3、Arrays.copyOf 的用法:
有十种重载方法,复制指定的数组,返回原数组的副本。具体可以查看jdk api
java.util.Arrays.Arrays.copyOf(源数组,新数组长度);
java.util.Arrays.copyOfRange(源数组,开始拷贝位置,结束拷贝位置);
它的源代码
+ View code
public static int[] copyOf(int[] original, int newLength) {
int[] copy = new int[newLength];
System.arraycopy(original, 0, copy, 0,
Math.min(original.length, newLength));
return copy;
}
实际上它调用的就是System.arraycopy。
4、for循环
代码灵活,但效率低