一、 List.toArray()方法的定義
在Java中,List是一個非常重要的數據結構。它提供了一種有序且可重複的集合。而toArray()方法便是List介面定義的方法之一,它可以將List集合轉換成一個數組
public Object[] toArray()
toArray()方法不需要傳入任何參數,它會返回一個Object類型的數組。由於數組無法動態擴容,該方法返回的類型為Object[],而非T[],T表示泛型類型。
二、 List.toArray()方法的使用
下面我們通過代碼,來說明如何使用toArray()方法:
List<String> list = new ArrayList<>();
list.add("java");
list.add("c");
list.add("python");
Object[] array1 = list.toArray();
// 輸出結果:[Ljava.lang.Object;@7f63425a
System.out.println(array1);
String[] array2 = list.toArray(new String[0]);
// 輸出結果:[java, c, python]
System.out.println(Arrays.toString(array2));
如上述代碼所示,我們可以通過以下兩種方式使用toArray()方法:
- 不傳入任何參數
- 傳入一個指定類型的空數組
使用第一種方式時,返回一個Object類型的數組;使用第二種方式時,返回一個泛型類型的數組。如果傳入的數組足夠大,可以存儲List中的所有元素,則將集合中的元素全部拷貝至輸入數組中返回。如果傳入的數組大小小於List的大小,則返回一個新的數組,其長度等於List的大小。
三、 List.toArray()方法的注意事項
調用toArray方法時需要注意以下幾點:
1、要求輸入的數組類型正確
toArray方法返回的數組類型由傳入參數的類型來確定,如果傳入的數組類型不是正確的類型,則可能會導致ClassCastException異常。
2、傳入的數組長度合適
如果傳入的數組不夠大,無法存儲List中的所有元素,則toArray()方法會創建一個新的數組返回,其包含所有元素。如果傳入的數組過大,則該方法只會在數組中存儲List中的元素,並將其餘位置置為null。
我們可以通過下面代碼來驗證傳入數組過大的情況:
String[] array3 = new String[6];
String[] array4 = list.toArray(array3);
// 輸出結果:[java, c, python, null, null, null]
System.out.println(Arrays.toString(array4));
以上代碼中,我們定義了一個長度為6的數組,實際上List中只有3個元素。所以toArray()方法只會將List中的元素拷貝到數組中,而其餘位置被設置為null。
3、傳入null數組
如果傳入null數組,則toArray()方法會新建一個數組來存儲List中的元素。傳入null數組的代碼如下所示:
String[] array5 = null;
String[] array6 = list.toArray(array5);
// 輸出結果:[java, c, python]
System.out.println(Arrays.toString(array6));
4、toArray()方法永遠不會返回null
如果List中的元素為空,則toArray()方法會返回一個長度為0的數組。
通過上述代碼示例和注意事項,我們可以很好的理解List.toArray()方法的使用和注意事項。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/255018.html