陣列在 Java 中的複製
Java 中陣列可使用以下方式複製到另一個數組中。
使用變數賦值。此方法具有副作用,因為更改陣列的元素將反映在兩個地方。為防止此副作用,以下是複製陣列元素的較好方法。
建立長度相同的陣列並複製每個元素。
使用陣列的克隆方法。克隆方法建立一個大小相同的陣列。
使用 System.arraycopy() 方法。arraycopy() 可用於複製陣列的子集。
示例
建立一個名為 Tester 的 Java 類。
Tester.java
public class Tester { public static void main(String args[]) { //Scenario 1: Copy array using assignment int[] a = {1, 2, 3}; int[] b = a; //test side effect b[0]++; System.out.println("Scenario 1: "); System.out.print("Array a: "); printArray(a); System.out.print("Array b: "); printArray(b); //Scenario 2: Copy array by iterating int[] c = {1, 2, 3}; int[] d = new int[c.length]; for (int i = 0; i < d.length; i++) { d[i] = c[i]; } //test side effect d[0]++; System.out.println("Scenario 2: "); System.out.print("Array c: "); printArray(c); System.out.print("Array d: "); printArray(d); //Scenario 3: Copy array using clone int[] e = {1, 2, 3}; int[] f = e.clone(); //test side effect f[0]++; System.out.println("Scenario 3: "); System.out.print("Array e: "); printArray(e); System.out.print("Array f: "); printArray(f); //Scenario 4: Copy array using arraycopy int[] g = {1, 2, 3}; int[] h = new int[g.length]; System.arraycopy(g, 0, h, 0, h.length); //test side effect h[0]++; System.out.println("Scenario 4: "); System.out.print("Array g: "); printArray(g); System.out.print("Array h: "); printArray(h); } public static void printArray(int[] a) { System.out.print("[ "); for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } System.out.println("]"); } }
輸出
編譯並執行檔案以驗證結果。
Scenario 1: Array a: [ 2 2 3 ] Array b: [ 2 2 3 ] Scenario 2: Array c: [ 1 2 3 ] Array d: [ 2 2 3 ] Scenario 3: Array e: [ 1 2 3 ] Array f: [ 2 2 3 ] Scenario 4: Array g: [ 1 2 3 ] Array h: [ 2 2 3 ]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP