1. 程式人生 > >數組復制的五種方式(遍歷循環一一賦值、System.arraycopy、地址賦值、克隆clone()、Arrays.copyof())

數組復制的五種方式(遍歷循環一一賦值、System.arraycopy、地址賦值、克隆clone()、Arrays.copyof())

.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())