在Java中,List和數組是兩種常用的數據結構。在一些場景下,需要將List轉換為數組,比如對集合進行排序等操作。本文將詳細介紹Java中List如何轉換為數組。
一、使用toArray()方法轉換
Java中List提供了toArray()方法,可以將List轉換為數組。方法有兩種重載形式:
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
String[] arr1 = list.toArray(new String[0]); //1
String[] arr2 = list.toArray(new String[list.size()]); //2
其中,第一種方式需要傳入一個類型相同的空數組,通過反射創建一個新數組並返回。這種方式的優勢在於可以自動識別泛型類型,而且可以確保數組長度不小於List的長度。
第二種方式需要傳入一個長度和List相同的數組,toArray()會將List中的內容複製到傳入的數組中。如果傳入的數組長度小於List長度,將會創建一個新數組並返回。
二、使用stream()方法轉換
Java 8引入了stream()方法,可以方便地將List轉換為數組。方法如下:
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
String[] arr = list.stream().toArray(String[]::new);
stream()方法將List轉換為一個流,我們可以對流進行處理並使用toArray()方法將其轉換為數組。這種方式的優勢在於代碼簡潔。
三、使用Arrays.copyOf()方法轉換
Java中的Arrays類提供了copyOf()方法,可以將List轉換為數組。方法如下:
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
String[] arr = Arrays.copyOf(list.toArray(), list.size(), String[].class);
copyOf()方法需要傳入原數組、新數組長度和新數組類型。這種方式的優勢在於代碼簡潔,而且可以確保新數組長度等於List長度。
四、小結
本文介紹了Java中三種常用的將List轉換為數組的方式:toArray()方法、stream()方法和Arrays.copyOf()方法。不同的方法有不同的優勢,可以根據具體場景進行選擇。轉換後的數組可以方便進行一些數組操作,比如排序、查找等。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/157563.html