HOWTO · Java
在 Java 中設定一個陣列等於另一個陣列
本教程演示如何在 Java 中設定一個陣列等於另一個陣列。
本頁內容
在 Java 中有幾種方法可以使陣列與另一個陣列相等。本教程演示如何在 Java 中將一個陣列值設定為等於另一個陣列值。
在 Java 中設定一個陣列等於另一個陣列
如上所述,可以使用多種方式將 Java 中的陣列設定為與另一個陣列相等。這裡有幾種方法:
- 建立一個與前一個長度相同的陣列,並複製每個元素。
- 使用
System.ArrayCopy()方法,我們可以複製陣列的子集。它需要兩個陣列和輸出陣列的長度作為引數。 - 我們可以使用
clone()方法克隆一個陣列。 - 使用
Array.copyof()和Arrays.copyOfRange()方法,我們也可以複製一個陣列。Arrays.copyof()方法將陣列和元素數量作為引數,Arrays.copyOfRange()將陣列和元素範圍作為引數。 - 另外,將一個陣列分配給另一個陣列的一種最簡單的方法,但它有一個副作用,如果我們更改一個陣列的元素,稍後將在第二個陣列中更改它。以上所有方法都沒有這種副作用。
讓我們嘗試一個可以實現上述所有方法的示例。
package delftstack;
import java.util.Arrays;
public class Array_Copy {
public static void main(String args[]) {
// Method 1: Copy array by the same length
String[] Array1 = {"delftstack1", "delftstack2", "delftstack3"};
String[] Array2 = new String[Array1.length];
for (int i = 0; i < Array2.length; i++) {
Array2[i] = Array1[i];
}
System.out.println("Method 1: ");
System.out.print("Array 1: " + Arrays.toString(Array1));
System.out.print("\nArray 2: " + Arrays.toString(Array2));
// Method 2: Using System.arraycopy method
String[] Array3 = {"delftstack1", "delftstack2", "delftstack3"};
String[] Array4 = new String[Array3.length];
System.arraycopy(Array3, 0, Array4, 0, Array4.length);
System.out.println("\nMethod 2: ");
System.out.print("Array 3: " + Arrays.toString(Array3));
System.out.print("\nArray 4: " + Arrays.toString(Array4));
// Method 3: using clone() method
String[] Array5 = {"delftstack1", "delftstack2", "delftstack3"};
String[] Array6 = Array5.clone();
System.out.println("\nMethod 3: ");
System.out.print("Array 5: " + Arrays.toString(Array5));
System.out.print("\nArray 6: " + Arrays.toString(Array6));
// Method 4: using Arrays.copyOf() and Arrays.copyOfRange() methods
String[] Array7 = {"delftstack1", "delftstack2", "delftstack3"};
String[] Array8 = Arrays.copyOf(Array7, 3);
String[] Array9 = Arrays.copyOfRange(Array7, 0, 3);
System.out.println("\nMethod 4: ");
System.out.print("Array 7: " + Arrays.toString(Array7));
System.out.print("\nArray 8: " + Arrays.toString(Array8));
System.out.print("\nArray 9: " + Arrays.toString(Array9));
// Method 5: using clone() method
String[] Array10 = {"delftstack1", "delftstack2", "delftstack3"};
String[] Array11 = Array10;
// Check the side effect
Array10[2] = "Changed";
System.out.println("\nMethod 5: ");
System.out.print("Array 10: " + Arrays.toString(Array10));
System.out.print("\nArray 11: " + Arrays.toString(Array11));
}
}
上面的程式碼使用了上面描述的所有方法,並在 Java 中設定一個陣列等於另一個陣列,複製一個陣列。見輸出:
Method 1:
Array 1: [delftstack1, delftstack2, delftstack3]
Array 2: [delftstack1, delftstack2, delftstack3]
Method 2:
Array 3: [delftstack1, delftstack2, delftstack3]
Array 4: [delftstack1, delftstack2, delftstack3]
Method 3:
Array 5: [delftstack1, delftstack2, delftstack3]
Array 6: [delftstack1, delftstack2, delftstack3]
Method 4:
Array 7: [delftstack1, delftstack2, delftstack3]
Array 8: [delftstack1, delftstack2, delftstack3]
Array 9: [delftstack1, delftstack2, delftstack3]
Method 5:
Array 10: [delftstack1, delftstack2, Changed]
Array 11: [delftstack1, delftstack2, Changed]