2.java数组拷贝的3种方式和效率对比
Java语言中常用的数组拷贝方式有:for循环拷贝,通过Arrays.copyOf()方法,System.arraycopy和clone()方法拷贝。
1 测试场景
我们用最简单的整数数组来测试。首先创建一个整型数组,并且初始化数据。然后分别用这3种方式来拷贝数组同样的次数。来测分别试这三种情况的效率。
1.1 初始化数组
int len = 1000;
int[] arr0 = new int[len];
for (int i = 0; i < len; i++) {
arr0[i] = i;
}
1.1 for循环拷贝数组
采用for循环遍历数组,然后根据数组下标对应赋值,来实现复制数组。
/** 1 for 循环拷贝*/
int[] arr1 = new int[len];
for (int i = 0; i < len; i++) {
arr1[i] = arr0[i];
}
1.2 Arrays.copyOf拷贝数组
java.util.Arrays类中提供了一个copyOf()方法,通过这个方法可以实现数组复制。这个方法的原理是内部创建了一个数组对象,然后通过System.arraycopy来实现数组复制.
- copyOf方法源码
public static int[] copyOf(int[] original, int newLength) {
int[] copy = new int[newLength];
System