在Java中,數組是常見的數據結構之一,使用數組能夠便捷地存儲和訪問一組數據。但是在實際的開發中,我們有時需要將數組轉換為List來進行其他操作,比如排序或者操作List的一些方法等。本文將介紹Java數組如何轉換為List,同時會講解代碼的實現方法以及一些相關的細節。
一、Arrays.asList()
Java數組轉List的最簡單方式是使用Arrays類中的asList()方法。該方法將輸入的數組轉換為List集合,同時也支持變長參數。
String[] strArray = {"apple", "banana", "orange"};
List strList1 = Arrays.asList(strArray);
List strList2 = Arrays.asList("watermelon", "grape", "pineapple");
使用Arrays.asList()方法轉換後的List是不可改變的(unmodifiable),也就是不能進行add、remove、清空等操作。因為asList()方法將數組轉換為List的實現,只是提供了一個視圖,可以訪問原數組的元素。
如果需要對轉換後的List進行修改,可以將其重新生成一個List對象,如下所示:
String[] strArray = {"apple", "banana", "orange"};
List strList1 = new ArrayList(Arrays.asList(strArray));
該方法返回的List將是一個ArrayList類型的對象,可以像正常的List一樣進行操作。但是需要注意的是,如果原數組元素是基本類型的話,需要使用對應的包裝類進行轉換。
二、手寫循環轉換
除了使用asList()方法之外,手動使用循環將數組元素一個一個轉換也是一種實現方法。
String[] strArray = {"apple", "banana", "orange"};
List strList = new ArrayList();
for (String str : strArray) {
strList.add(str);
}
這裡使用了foreach循環,遍歷原數組元素並添加到新的List對象中。該方法的優點是代碼簡單易懂,缺點是代碼量較大。如果需要對多個數組進行轉換操作,代碼量會進一步增加。
三、使用Java 8的Stream
Java 8 提供了Stream API,可以用來處理集合元素,包括過濾、排序、映射等操作。Stream API也可以用於將數組轉換為List對象。
String[] strArray = {"apple", "banana", "orange"};
List strList = Stream.of(strArray).collect(Collectors.toList());
在該方法中,將一個數組轉換為Stream對象,並使用collect()方法將元素收集到新的List中。使用Stream方式轉換時,需要先導入java.util.stream.Collectors包。該方式可以使用在需要處理大量數據時,因為可以使用Stream的並發特性來提高處理效率。
四、Java 9中新增的方法
在Java 9中,新增了Arrays類中的兩個方法,可用於將數組轉換為List對象。這兩個方法分別是toList()和toCollection()方法。
String[] strArray = {"apple", "banana", "orange"};
List strList = Arrays.asList(strArray).toUnmodifiableList();
List strList2 = Arrays.asList(strArray).stream().collect(Collectors.toUnmodifiableList());
List strList3 = Arrays.stream(strArray).collect(Collectors.toUnmodifiableList());
List strList4 = Arrays.toUnmodifiableList(strArray);
List strList5 = Arrays.stream(strArray).toList();
上述代碼展示了幾種使用Java 9的新方法實現數組轉換為List的方式。其中toUnmodifiableList()方法返回的對象是一個不可修改的List對象,也就是不能進行add、remove、清空等操作。
總結
本文介紹了幾種Java數組轉換為List的實現方式,其中asList()、手寫循環轉換和Stream都是常用的方式。需要注意的是,使用asList()方法轉換後的List是不能進行修改的(unmodifiable),需要重新生成一個List對象。在Java 9中,新增了toList()和toCollection()方法,可以用於將數組轉換為List。對於不同的場景,可以選擇不同的實現方式。代碼示例如下:
String[] strArray = {"apple", "banana", "orange"};
// asList()
List strList1 = new ArrayList(Arrays.asList(strArray));
// 手寫循環轉換
List strList2 = new ArrayList();
for (String str : strArray) {
strList2.add(str);
}
// Stream
List strList3 = Stream.of(strArray).collect(Collectors.toList());
// Java 9 新增toList()方法
List strList4 = Arrays.asList(strArray).stream().collect(Collectors.toUnmodifiableList());
// Java 9 新增toCollection()方法
List strList5 = Arrays.toUnmodifiableList(strArray);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/237495.html