数组拷贝:
1.for循环
2.clone
3.System.arraycopy()<最快>
4.Arrays.copyOf()
这四种拷贝方式对于基本类型来说是深拷贝,对于应用类型来说是浅拷贝。
System.arraycopy(src,srcPos,dest,destPos,length)
src:源数组,srcPos:源数组中的起始位置,dest:目标数组,dextPos:目标数组的起始位置,length:数组长度。
Arrays.copyOf(T[] original,length)
T[] original:源数组,length:数组长度
import java.util.Arrays;
/**
* Created with IntelliJ IDEA.
* Description:
* User:
* Date: 2019-04-08
* Time: 11:46
*/
public class TextDeme3 {
public static void main(String[] args) {
int[] array1 = new int[]{1, 2, 3, 4, 5};//源数组
int[] array2 = new int[array1.length];//for
int[] array3 = new int[array1.length];//System.arraycopy
int[] array4 = new int[array1.length];//Arrays.copyOf
int[] array5 = new int[array1.length];//clone
for (int i = 0; i < array1.length; i++) {
}
System.out.println("array1");
System.out.println(Arrays.toString(array1));
System.arraycopy(array1, 0, array3, 0, array1.length);
System.out.println("System.arraycopy");
System.out.println(Arrays.toString(array3));
array4 = Arrays.copyOf(array1, array1.length);
System.out.println("Arrays.copyOf");
System.out.println(Arrays.toString(array4));
array5 = array1.clone();
System.out.println("clone");
System.out.println(Arrays.toString(array5));
for (int i = 0; i < array1.length; i++) {
array2[i] = array1[i];
}
System.out.println("for");
System.out.println(Arrays.toString(array2));
}
}