在 Java 中設定一個陣列等於另一個陣列

Sheeraz Gul 2023年10月12日
在 Java 中設定一個陣列等於另一個陣列

在 Java 中有幾種方法可以使陣列與另一個陣列相等。本教程演示如何在 Java 中將一個陣列值設定為等於另一個陣列值。

在 Java 中設定一個陣列等於另一個陣列

如上所述,可以使用多種方式將 Java 中的陣列設定為與另一個陣列相等。這裡有幾種方法:

  1. 建立一個與前一個長度相同的陣列,並複製每個元素。
  2. 使用 System.ArrayCopy() 方法,我們可以複製陣列的子集。它需要兩個陣列和輸出陣列的長度作為引數。
  3. 我們可以使用 clone() 方法克隆一個陣列。
  4. 使用 Array.copyof()Arrays.copyOfRange() 方法,我們也可以複製一個陣列。Arrays.copyof() 方法將陣列和元素數量作為引數,Arrays.copyOfRange() 將陣列和元素範圍作為引數。
  5. 另外,將一個陣列分配給另一個陣列的一種最簡單的方法,但它有一個副作用,如果我們更改一個陣列的元素,稍後將在第二個陣列中更改它。以上所有方法都沒有這種副作用。

讓我們嘗試一個可以實現上述所有方法的示例。

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]
作者: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

相關文章 - Java Array