數組復制的五種方式(遍歷循環一一賦值、System.arraycopy、地址賦值、克隆clone()、Arrays.copyof())
阿新 • • 發佈:2019-04-25
.cn out ring class str ava nwr summer oid
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)); } }
數組復制的五種方式(遍歷循環一一賦值、System.arraycopy、地址賦值、克隆clone()、Arrays.copyof())