一、為什麼需要將List轉為數組
List和數組都是Java中常用的數據結構,二者各有優缺點。使用List可以動態添加、刪除元素,而數組則更加高效。在某些場景下,需要將List轉為數組,如:作為參數傳遞給方法或者調用數組相關的API時等。因此,掌握將List轉為數組的方法是非常有必要的。
二、將List轉為數組的方法
Java中提供了多種將List轉為數組的方法,以下分別介紹。
1.使用toArray方法
Java中List接口提供了一個toArray()方法可以將List轉為數組。代碼示例:
List list = new ArrayList(); list.add("apple"); list.add("banana"); list.add("orange"); String[] array = list.toArray(new String[list.size()]);
使用該方法會創建一個新的數組,該數組的長度等於List的長度,然後將List中的元素存放到該數組中。需要注意的是,該方法的參數是一個指定類型和長度的空數組,其作用是告訴toArray方法將返回的數組存儲在哪個數組中,如果參數長度小於List的長度,則會自動創建一個新的數組。
2.使用Arrays的toArray方法
Java中,Arrays提供了靜態方法toArray,同樣可以將List轉為數組。代碼示例:
List list = new ArrayList(); list.add("apple"); list.add("banana"); list.add("orange"); String[] array = Arrays.toArray(list, new String[list.size()]);
使用該方法與List的toArray方法有些類似,只不過該方法是Arrays類的靜態方法,可以直接通過類名調用,而且可以指定數組類型,不需要再向數組方法中傳遞一個空數組參數。
3.使用Stream API的toArray方法
Java 8 引入了Stream API,該API提供了toArray方法,可以將List轉為數組。代碼示例:
List list = new ArrayList(); list.add("apple"); list.add("banana"); list.add("orange"); String[] array = list.stream().toArray(String[]::new);
該方法可以通過Stream API中stream()方法獲取到List的stream,然後通過toArray方法將List轉為數組。該方法需要傳遞一個構造器引用,創建一個指定長度的數組,然後將List中的元素存儲在該數組中。
三、List和數組之間的相互轉換
除了將List轉為數組,Java中也可以將數組轉為List。以下是兩種將數組轉為List的方法:
1.使用Arrays.asList方法
Java中,Arrays類提供了一個asList方法可以將數組轉為List。代碼示例:
String[] array = {"apple", "banana", "orange"}; List list = Arrays.asList(array);
該方法實際上返回的是Arrays的內部類java.util.Arrays.ArrayList,該類繼承自AbstractList,實現了List接口,並沒有實現add、remove等方法,所以無法修改長度。
2.使用Collections.addAll方法
Java中,Collections類提供了一個addAll方法可以將數組轉為List。代碼示例:
String[] array = {"apple", "banana", "orange"}; List list = new ArrayList(); Collections.addAll(list, array);
該方法會將數組轉為List,並添加到List中,同樣是不可變長度的List。
四、總結
本文詳細介紹了Java中如何將List轉為數組,講解了三種不同的方法,包括使用List的toArray方法、Arrays類的toArray方法、以及Stream API的toArray方法。另外,本文也介紹了將數組轉為List的兩種方法。通過本文的介紹,相信讀者已經對Java中如何將List轉為數組有了深入的理解。
原創文章,作者:MDFH,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/137780.html