北京市網信辦依法約談處罰知乎網,責令其立即整改
阿新 • • 發佈:2021-12-20
本文為joshua317原創文章,轉載請註明:轉載自joshua317部落格https://www.joshua317.com/article/219
Java陣列的四種拷貝方式
1.for迴圈實現陣列copy
2.clone實現陣列copy
3.System.arraycopy()實現陣列copy
4.Arrays.copyOf實現陣列copy
下面通過下面實現一維陣列和二維陣列的copy
package com.joshua317; import java.util.*; public class Test { public static void main(String[] args) { String[] namesArr = {"joshua317","joshua","jack"}; String[] namesArrCopy1 = new String[namesArr.length]; //1.1 一維陣列--for迴圈實現陣列copy System.out.println("==========================一維陣列--for迴圈實現陣列copy============================"); for (int i=0; i<namesArrCopy1.length; i++) { namesArrCopy1[i] = namesArr[i]; } printArr(namesArrCopy1); //1.2 一維陣列--clone實現陣列copy System.out.println("==========================一維陣列--clone實現陣列copy============================"); String[] namesArrCopy2 = namesArr.clone(); printArr(namesArrCopy2); //1.3 一維陣列--System.arraycopy() System.out.println("==========================一維陣列--System.arraycopy()============================"); String[] namesArrCopy3 = new String[namesArr.length]; System.arraycopy(namesArr, 0,namesArrCopy3,0, namesArr.length); printArr(namesArrCopy3); //1.4 一維陣列--Arrays.copyOf實現陣列copy System.out.println("==========================一維陣列--Arrays.copyOf實現陣列copy============================"); String[] namesArrCopy4 = Arrays.copyOf(namesArr,namesArr.length); printArr(namesArrCopy4); //2.1 二維陣列--for迴圈實現陣列copy System.out.println("==========================二維陣列--for迴圈實現陣列copy============================"); String[][] names2Arr = {{"joshua317","joshua","jack"},{"joshua318","joshua2","jack2"}}; String[][] names2ArrCopy1 = new String[names2Arr.length][names2Arr[0].length]; for (int i = 0; i < names2ArrCopy1.length; i++) { for (int j = 0; j < names2ArrCopy1[i].length; j++) { names2ArrCopy1[i][j] = names2Arr[i][j]; } } printArr2(names2ArrCopy1); //2.2 二維陣列--clone實現陣列copy System.out.println("==========================二維陣列--clone實現陣列copy============================"); String[][] names2ArrCopy2 = new String[names2Arr.length][names2Arr[0].length]; for (int i = 0; i < names2ArrCopy2.length; i++) { names2ArrCopy2[i] = names2Arr[i].clone(); } printArr2(names2ArrCopy2); //2.3 二維陣列--System.arraycopy() System.out.println("==========================二維陣列--System.arraycopy()============================"); String[][] names2ArrCopy3 = new String[names2Arr.length][names2Arr[0].length]; for (int i = 0; i < names2ArrCopy3.length; i++) { System.arraycopy(names2Arr[i], 0,names2ArrCopy3[i],0, names2Arr[i].length); } printArr2(names2ArrCopy3); //2.4 二維陣列--Arrays.copyOf實現陣列copy System.out.println("==========================二維陣列--Arrays.copyOf實現陣列copy============================"); String[][] names2ArrCopy4 = new String[names2Arr.length][names2Arr[0].length]; for (int i = 0; i < names2ArrCopy4.length; i++) { names2ArrCopy4[i] = Arrays.copyOf(names2Arr[i],names2Arr[i].length); } printArr2(names2ArrCopy4); } public static <T> void printArr(T[] t) { System.out.println(Arrays.toString(t)); } public static <T> void printArr2(T[][] t) { for (int i=0; i<t.length; i++) { System.out.println(Arrays.toString(t[i])); } }
本文為joshua317原創文章,轉載請註明:轉載自joshua317部落格https://www.joshua317.com/article/219