在 Java 中複製陣列

Rupam Yadav 2023年10月12日
  1. 在 Java 中使用 Arays.copyOf() 將一個陣列複製到另一個陣列
  2. 使用 Java 中的 System.arraycopy() 將一個陣列複製到另一個陣列
  3. 在 Java 中使用 clone() 將一個二維陣列複製到另一個陣列中
在 Java 中複製陣列

本教程介紹了幾種在 Java 中把一個陣列複製到另一個陣列的方法。我們可以使用手動的方法與迴圈來實現,但為了簡單起見,我們不想重新發明輪子,還是不要使用這種方法。

在 Java 中使用 Arays.copyOf() 將一個陣列複製到另一個陣列

我們可以使用 Arrays 類的 copyOf() 方法,將指定的陣列複製到一個新的陣列中。copyOf() 需要兩個引數,第一個是要複製的陣列,第二個是新陣列的長度。

在下面的例子中,我們將 array1 複製到 array2。新陣列的長度等於 array1。如果新陣列的大小大於舊陣列的大小,那麼每一個空的索引都將被填充為 0。我們用一個迴圈來列印新陣列的專案和它們的索引。

import java.util.Arrays;

public class CopyArray {
  public static void main(String[] args) {
    int[] array1 = new int[] {2, 4, 6, 8, 10};

    int[] array2 = Arrays.copyOf(array1, array1.length);

    for (int i = 0; i < array2.length; i++) {
      System.out.println("array2 position " + i + ": " + array2[i]);
    }
  }
}

輸出:

array2 position 0: 2
array2 position 1: 4
array2 position 2: 6
array2 position 3: 8
array2 position 4: 10

使用 Java 中的 System.arraycopy() 將一個陣列複製到另一個陣列

System.arraycopy() 在我們要用舊陣列的子專案建立一個新陣列時非常有用,因為它將舊陣列的指定位置的陣列專案複製到新陣列的位置。

System.arraycopy() 至少需要四個引數,分別是要複製的陣列 array1array1 的起始位置、新陣列 array2array2 的起始位置、要複製到 array2 的元素。輸出顯示的是 array2 中的元素。

public class CopyArray {
  public static void main(String[] args) {
    String[] array1 = new String[] {"Adam", "Claire", "Dave", "Greg", "Halsey", "Jane", "Kylie"};

    String[] array2 = new String[array1.length];

    System.arraycopy(array1, 0, array2, 0, array1.length);

    for (int i = 0; i < array2.length; i++) {
      System.out.println("array2 position " + i + ": " + array2[i]);
    }
  }
}

輸出:

array2 position 0: Adam
array2 position 1: Claire
array2 position 2: Dave
array2 position 3: Greg
array2 position 4: Halsey
array2 position 5: Jane
array2 position 6: Kylie

在 Java 中使用 clone() 將一個二維陣列複製到另一個陣列中

Java 中最後一個複製陣列的方法是 clone(),它返回一個包含複製陣列項的新陣列。在這個例子中,我們使用一個有八個元素的二維陣列 array1。我們使用 array1.clone() 來複制陣列,並使用兩個迴圈來列印新的陣列 array2 元素。

public class CopyArray {
  public static void main(String[] args) {
    int[][] array1 = {{10, 20}, {30, 40}, {50, 60}, {70, 80}};

    int[][] array2 = array1.clone();

    for (int i = 0; i < array2.length; i++) {
      for (int j = 0; j < array2[i].length; j++) {
        System.out.println("array2 position [" + i + "][" + j + "] : " + array2[i][j]);
      }
    }
  }
}

輸出:

array2 position [0][0] : 10
array2 position [0][1] : 20
array2 position [1][0] : 30
array2 position [1][1] : 40
array2 position [2][0] : 50
array2 position [2][1] : 60
array2 position [3][0] : 70
array2 position [3][1] : 80
作者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

相關文章 - Java Array