複製陣列
Java 提供了幾種複製陣列的方法。
for 迴圈
int[] a = { 4, 1, 3, 2 };
int[] b = new int[a.length];
for (int i = 0; i < a.length; i++) {
b[i] = a[i];
}
請注意,將此選項與 Object 陣列而不是基本陣列一起使用將填充副本,並引用原始內容而不是副本。
Object.clone()
由於陣列是 Java 中的 Object
s,你可以使用 Object.clone()
。
int[] a = { 4, 1, 3, 2 };
int[] b = a.clone(); // [4, 1, 3, 2]
請注意,陣列的 Object.clone
方法執行淺拷貝,即它返回對引用與源陣列相同元素的新陣列的引用。
Arrays.copyOf()
java.util.Arrays
提供了一種簡單的方法來執行陣列的複製。這是基本用法:
int[] a = {4, 1, 3, 2};
int[] b = Arrays.copyOf(a, a.length); // [4, 1, 3, 2]
請注意,Arrays.copyOf
還提供了一個過載,允許你更改陣列的型別:
Double[] doubles = { 1.0, 2.0, 3.0 };
Number[] numbers = Arrays.copyOf(doubles, doubles.length, Number[].class);
System.arraycopy()
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
將指定源陣列中的陣列從指定位置開始複製到目標陣列的指定位置。
下面是一個使用示例
int[] a = { 4, 1, 3, 2 };
int[] b = new int[a.length];
System.arraycopy(a, 0, b, 0, a.length); // [4, 1, 3, 2]
Arrays.copyOfRange()
主要用於複製陣列的一部分,你也可以使用它將整個陣列複製到另一個陣列,如下所示:
int[] a = { 4, 1, 3, 2 };
int[] b = Arrays.copyOfRange(a, 0, a.length); // [4, 1, 3, 2]