一、List轉換為數組的方法
在Java中,List和數組是常見的數據結構之一。在我們處理數據的時候,有時候需要將List轉換成數組。這時候我們可以使用List提供的toArray()方法。該方法將List轉換為數組。
List myList = new ArrayList(); myList.add("蘋果"); myList.add("橘子"); myList.add("香蕉"); String[] myArray = myList.toArray(new String[0]);
上述代碼中,我們將一個String類型的List轉換成了一個String類型的數組。
這裡需要注意的是,在toArray()方法中需要傳入一個空數組。空數組的作用是確定返回的數組類型,如果傳入一個非空數組,則返回的數組類型為傳入類型,如果傳入的數組長度不夠,則需要重新創建一個數組,空數組則不需要重新創建,可以節省空間。
二、數組轉換為List的方法
除了可以將List轉換為數組,我們也可以將數組轉換為List。這時候可以使用Arrays類提供的asList()方法。
String[] strArray = new String[] { "蘋果", "橘子", "香蕉" }; List strList = Arrays.asList(strArray);
上述代碼中,我們定義了一個String類型的數組,然後使用Arrays.asList()方法將該數組轉換成一個List。
需要注意的是,asList()方法返回的List是一個不可變的List,不能進行add,remove等操作。如果需要對List進行修改,則需要將其轉換成ArrayList等可變List後再進行操作。
三、List和數組的互相轉換
當然,我們也可以通過循環遍歷的方式將List轉換成數組,或者通過Arrays.asList()方法將數組轉換成List,但這些方法有時候比較麻煩。那有沒有一種方法可以讓我們在List和數組之間自由轉換呢?答案是有的。
我們可以定義一個工具類,其中包含兩個方法:一個將List轉換成數組,另一個將數組轉換成List。
public class ConvertUtils { public static T[] listToArray(List list, T[] array) { return list.toArray(array); } public static List arrayToList(T[] array) { return new ArrayList(Arrays.asList(array)); } }
上述代碼中,我們定義了一個方法listToArray,該方法接收一個List對象和一個數組對象,調用List的toArray()方法將List轉換成數組。同時該方法使用了泛型,可以處理任意類型的List。
我們還定義了一個方法arrayToList,該方法接收一個數組對象,並使用Arrays.asList()方法將其轉換成一個List對象。
這樣,當我們需要將List轉換成數組時,可以直接調用listToArray()方法,需要將數組轉換成List時,可以直接調用arrayToList()方法。
四、總結
本文介紹了List與數組之間的相互轉換方法,包括List提供的toArray()方法、Arrays類提供的asList()方法,以及手動實現的工具類的方法。這些轉換方法在Java程序中經常用到,可以提高我們對數據的處理效率和便捷性。
完整代碼如下:
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ConvertUtils { public static void main(String[] args) { // List to array List myList = new ArrayList(); myList.add("蘋果"); myList.add("橘子"); myList.add("香蕉"); String[] myArray = listToArray(myList, new String[0]); System.out.println(Arrays.toString(myArray)); // Array to list String[] strArray = new String[] { "蘋果", "橘子", "香蕉" }; List strList = arrayToList(strArray); System.out.println(strList); } public static T[] listToArray(List list, T[] array) { return list.toArray(array); } public static List arrayToList(T[] array) { return new ArrayList(Arrays.asList(array)); } }
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/232558.html