数组复制的五种方式(遍历循环一一赋值、System.arraycopy、地址赋值、克隆clone()、Arrays.copyof())
package com.Summer_0424.cn; import java.util.Arrays; import java.util.concurrent.CopyOnWriteArrayList; /** * @author Summer * 数组复制的五种方式(遍历循环一一赋值、System.arraycopy、地址赋值、克隆clone()、Array.copyof()) */ public class Test06 { public static void main(String[] args) { //复制数组,首先声明一个数组 int [] arr = {1,2,3,4,5}; //方式一:一一遍历后依次赋值 int [] arr1 = new int[arr.length]; for (int i = 0; i < arr.length; i++) { arr1[i] = arr[i]; } System.out.println(Arrays.toString(arr1)); //方法二 //前提 :必须要创建目标数组 //格式:源数组,源数组的起始位置,目标数组,目标数组的起始位置 int [] arr2 = new int[arr.length]; System.arraycopy(arr, 0, arr2, 0, 5);//源码中native代表调用了底层源码 System.out.println(Arrays.toString(arr2)); //方法三 地址赋值 int [] arr3 = arr; System.out.println(arr);//输出地址 System.out.println(arr3);//比较地址 System.out.println(Arrays.toString(arr3)); //方式四 克隆 int [] arr4 = arr.clone(); System.out.println(arr);//输出地址 System.out.println(arr4);//比较地址 System.out.println(Arrays.toString(arr4)); //方法五 copyof int [] arr5 = Arrays.copyOf(arr, 5); System.out.println(Arrays.toString(arr5)); } }