一、什麼是copyOf方法
copyOf方法是Java中Arrays類中的一個靜態方法,它可以將原始數組src的部分或全部拷貝到一個新的數組中。
該方法有兩個參數:第一個參數是原始數組,第二個參數是需要拷貝的元素個數。如果需要拷貝的元素個數大於原始數組長度,則新數組的長度就是拷貝元素個數;如果不超過原始數組長度,則新數組的長度就是拷貝元素個數。
二、copyOf方法的使用方法
copyOf方法的語法如下:
public static T[] copyOf(T[] original, int newLength)
參數說明:
- original:原始數組。
- newLength:需要拷貝的元素個數。
返回值:拷貝後的新數組。
使用示例:
String[] array1 = {"apple", "banana", "orange", "pear"}; String[] array2 = Arrays.copyOf(array1, 3); System.out.println(Arrays.toString(array2)); // 輸出:[apple, banana, orange]
上述代碼中,array1是原始數組,array2是拷貝後的新數組,執行Arrays.copyOf(array1, 3)表示將array1中前3個元素拷貝到新數組中,所以輸出是[apple, banana, orange]。
三、copyOf方法的特點
1、指定長度拷貝
copyOf方法可以根據第二個參數指定需要拷貝的元素個數,該特點非常適用於數組長度預估不準的情況,可以根據需要靈活指定。
示例代碼:
int[] array1 = {1, 2, 3, 4, 5}; int[] array2 = Arrays.copyOf(array1, 3); int[] array3 = Arrays.copyOf(array1, 7); System.out.println(Arrays.toString(array2)); // 輸出:[1, 2, 3] System.out.println(Arrays.toString(array3)); // 輸出:[1, 2, 3, 4, 5, 0, 0]
上述代碼中,array1是原始數組,數組長度為5,array2是拷貝後的新數組,長度為3,array3是拷貝後的新數組,長度為7。數組array2隻拷貝array1的前3個元素,所以輸出為[1, 2, 3],數組array3拷貝了array1的所有元素,並填充了2個默認值0,所以輸出為[1, 2, 3, 4, 5, 0, 0]。
2、支持不同類型數組拷貝
copyOf方法可以拷貝不同類型的數組,比如將一個整型數組拷貝到一個長整型數組中。
示例代碼:
int[] array1 = {1, 2, 3, 4, 5}; long[] array2 = Arrays.copyOf(array1, 5, long[].class); System.out.println(Arrays.toString(array2)); // 輸出:[1, 2, 3, 4, 5]
上述代碼中,array1是原始數組,長度為5,數組元素類型為int,array2是拷貝後的新數組,長度為5,數組元素類型為long。
3、填充默認值
如果需要拷貝的元素個數大於原始數組長度,copyOf方法會自動填充默認值,如0、false、null等。
示例代碼:
int[] array1 = {1, 2, 3, 4, 5}; int[] array2 = Arrays.copyOf(array1, 7); System.out.println(Arrays.toString(array2)); // 輸出:[1, 2, 3, 4, 5, 0, 0]
上述代碼中,array1是原始數組,長度為5,array2是拷貝後的新數組,長度為7。由於需要拷貝的元素個數大於原始數組長度,所以自動填充了2個默認值0,所以輸出為[1, 2, 3, 4, 5, 0, 0]。
四、copyOf方法的注意事項
- 需要拷貝的元素個數必須大於等於0。
- 原始數組不能為null。
- 如果需要拷貝的元素個數超過原始數組長度,會自動填充默認值。
- 如果需要拷貝的元素個數不超過原始數組長度,新數組的長度就是拷貝元素個數。
- 如果需要拷貝的元素個數大於原始數組長度,新數組的長度就是拷貝元素個數。
- 拷貝後的新數組與原始數組的元素類型相同。
- 如果需要拷貝的是基本數據類型數組,則無法轉換為Object[],需要使用對應的包裝類例如Integer[]、Long[]等。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/308609.html