在Java中,有哪些不同的方法可以將一個數組複製到另一個數組?
一般來說,陣列是儲存多個相同資料型別變數的容器。它們是固定大小的,大小在建立時確定。陣列中的每個元素都由從0開始的數字定位。您可以使用名稱和位置訪問陣列的元素,例如:
System.out.println(myArray[3]); //Which is 1457 Creating an array in Java:
在Java中,陣列被視為引用型別,您可以使用與物件類似的new關鍵字建立陣列,並使用索引填充它,例如:
int myArray[] = new int[7]; myArray[0] = 1254; myArray[1] = 1458; myArray[2] = 5687; myArray[3] = 1457; myArray[4] = 4554; myArray[5] = 5445; myArray[6] = 7524;
或者,您可以直接在大括號中賦值,用逗號 (,) 分隔它們,例如:
int myArray = { 1254, 1458, 5687, 1457, 4554, 5445, 7524};陣列複製
您可以通過幾種方法將一個數組複製到另一個數組:
逐元素複製 - 一種方法是建立一個與原始陣列長度相同的空陣列,然後(在迴圈中)複製每個元素。
示例
import java.util.Arrays;
public class CopyingArray {
public static void main(String args[]) {
//Source array (int)
int integerArray1[] = { 1254, 1458, 5687, 1457, 4554, 5445, 7524};
//Length of the array
int length1 = integerArray1.length;
//Creating an empty array
int integerArray2[] = new int[length1];
for (int i=0; i<length1; i++) {
integerArray2[i] = integerArray1[i];
}
System.out.println("Original array: "+Arrays.toString(integerArray1));
System.out.println("Copied array: "+Arrays.toString(integerArray2));
//Source array (String)
String StringArray1[] = { "Mango", "Apple", "Orange", "Banana", "Cherries"};
//Length of the array
int length2 = StringArray1.length;
//Creating an empty array
String StringArray2[] = new String[length2];
for (int i=0; i<length2; i++) {
StringArray2[i] = StringArray1[i];
}
System.out.println("Original array: "+Arrays.toString(StringArray1));
System.out.println("Copied array: "+Arrays.toString(StringArray2));
}
}輸出
Original array: [1254, 1458, 5687, 1457, 4554, 5445, 7524] Copied array: [1254, 1458, 5687, 1457, 4554, 5445, 7524] Original array: [Mango, Apple, Orange, Banana, Cherries] Copied array: [Mango, Apple, Orange, Banana, Cherries]
使用clone()方法 - `java.lang.Object`類的**clone()**方法接受一個物件作為引數,建立並返回它的一個副本。
示例
import java.util.Arrays;
public class CopyingArray {
public static void main(String args[]) {
//Source array (int)
int integerArray1[] = { 1254, 1458, 5687, 1457, 4554, 5445, 7524};
//Cloning the array
int integerArray2[] = integerArray1.clone();
System.out.println("Original array: "+Arrays.toString(integerArray1));
System.out.println("Copied array: "+Arrays.toString(integerArray2));
//Source array (String)
String StringArray1[] = { "Mango", "Apple", "Orange", "Banana", "Cherries"};
//Cloning the array
String StringArray2[] = StringArray1.clone();
System.out.println("Original array: "+Arrays.toString(StringArray1));
System.out.println("Copied array: "+Arrays.toString(StringArray2));
}
}輸出
Original array: [1254, 1458, 5687, 1457, 4554, 5445, 7524] Copied array: [1254, 1458, 5687, 1457, 4554, 5445, 7524] Original array: [Mango, Apple, Orange, Banana, Cherries] Copied array: [Mango, Apple, Orange, Banana, Cherries]
使用System.arraycopy()方法 - System類的`arraycopy()`方法接受兩個陣列(以及其他細節),並將一個數組的內容複製到另一個數組。
示例
import java.util.Arrays;
public class CopyingArray {
public static void main(String args[]) {
//Source array (int)
int integerArray1[] = { 1254, 1458, 5687, 1457, 4554, 5445, 7524};
//Length of the array
int length1 = integerArray1.length;
//Destination array
int integerArray2[] = new int[length1];
//Copying Arrays
System.arraycopy(integerArray1, 0, integerArray2, 0, length1);
System.out.println("Original array: "+Arrays.toString(integerArray1));
System.out.println("Copied array: "+Arrays.toString(integerArray2));
//Source array (String)
String StringArray1[] = { "Mango", "Apple", "Orange", "Banana", "Cherries"};
//Length of the array
int length2 = StringArray1.length;
//Destination array
String StringArray2[] = new String[length2];
//Copying arrays
System.arraycopy(StringArray1, 0, StringArray2, 0, length2);
System.out.println("Original array: "+Arrays.toString(StringArray1));
System.out.println("Copied array: "+Arrays.toString(StringArray2));
}
}輸出
Original array: [1254, 1458, 5687, 1457, 4554, 5445, 7524] Copied array: [1254, 1458, 5687, 1457, 4554, 5445, 7524] Original array: [Mango, Apple, Orange, Banana, Cherries] Copied array: [Mango, Apple, Orange, Banana, Cherries]
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP