在 Java 中複製陣列
Rupam Yadav
2023年10月12日
-
在 Java 中使用
Arays.copyOf()
將一個陣列複製到另一個陣列 -
使用 Java 中的
System.arraycopy()
將一個陣列複製到另一個陣列 -
在 Java 中使用
clone()
將一個二維陣列複製到另一個陣列中
本教程介紹了幾種在 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()
至少需要四個引數,分別是要複製的陣列 array1
、array1
的起始位置、新陣列 array2
、array2
的起始位置、要複製到 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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn