一、介紹
在Java中,ArrayList是一個常用的數據結構,它能夠動態的存儲一組對象。ArrayList提供了很多方便的方法,例如添加、刪除、清除、遍歷等。但有時候,我們需要將ArrayList轉換為數組進行操作。本文將介紹Java中ArrayList轉數組的方法。
二、使用toArray方法將ArrayList轉數組
Java中提供了toArray方法,可以將ArrayList轉為數組。toArray方法有兩種形式:
// 無參形式,將ArrayList轉化為Object數組 Object[] toArray() // 有參形式,將ArrayList轉化為指定類型數組 <T> T[] toArray(T[] a)
下面分別對這兩種形式進行說明:
1. 無參形式
無參形式會將ArrayList轉化為Object類型的數組:
// 創建ArrayList並添加元素 ArrayList<String> arrayList = new ArrayList<String>(); arrayList.add("Java"); arrayList.add("PHP"); arrayList.add("Python"); // 轉為Object數組 Object[] objArray = arrayList.toArray(); // 遍歷Object數組 for(Object obj : objArray) { System.out.println(obj.toString()); }
上述代碼將ArrayList轉化為Object數組,並遍歷輸出,代碼的執行結果為:
Java PHP Python
2. 有參形式
有參形式可以將ArrayList轉化為指定類型的數組,這樣可以保留元素的數據類型。在有參形式中,需要創建一個目標類型的數組作為參數傳入:
// 創建ArrayList並添加元素 ArrayList<String> arrayList = new ArrayList<String>(); arrayList.add("Java"); arrayList.add("PHP"); arrayList.add("Python"); // 轉為String數組 String[] strArray = arrayList.toArray(new String[0]); // 遍歷String數組 for(String str : strArray) { System.out.println(str); }
上述代碼將ArrayList轉化為String數組,並遍歷輸出,代碼的執行結果為:
Java PHP Python
三、使用System.arraycopy方法將ArrayList轉數組
除了使用toArray方法將ArrayList轉為數組之外,還可以使用System.arraycopy方法將ArrayList轉為數組。System.arraycopy方法則需要手動創建目標類型的數組:
// 創建ArrayList並添加元素 ArrayList<String> arrayList = new ArrayList<String>(); arrayList.add("Java"); arrayList.add("PHP"); arrayList.add("Python"); // 轉為String數組 String[] strArray = new String[arrayList.size()]; System.arraycopy(arrayList.toArray(), 0, strArray, 0, arrayList.size()); // 遍歷String數組 for(String str : strArray) { System.out.println(str); }
上述代碼將ArrayList轉化為String數組,並遍歷輸出,代碼的執行結果為:
Java PHP Python
四、ArrayList轉數組的注意事項
在將ArrayList轉為數組時需要注意以下事項:
1. 目標類型數組長度不足
如果要轉化的目標類型數組大小不足,則會創建一個同類型的數組,但長度是當前ArrayList大小。因此,在使用有參形式時,需要傳入一個元素個數為0的數組:
String[] strArray = arrayList.toArray(new String[0]);
2. 目標類型數組長度過剩
如果要轉化的目標類型數組大小大於ArrayList當前大小,則數組中多餘部分取到默認值(此處默認值為null)。
3. 無法轉化基本數據類型的ArrayList
ArrayList中只能存儲對象,無法存儲基本數據類型的數據。如果需要存儲基本類型的數據,需要使用對應的包裝類型。
五、結語
通過本文可以了解到Java中ArrayList轉數組的兩種方法:toArray方法和System.arraycopy方法。在使用時需要注意目標類型數組的初始化及長度問題。
原創文章,作者:YPWI,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/134989.html