Java 中陣列轉換為 List

瘦風發表於2020-11-14

開發中經常遇到陣列和列表(List)互相轉換的場景。除了迴圈依次轉換,還有更高效的方法。

Java 中,基本資料型別的陣列 -> List,與包裝型別的陣列 -> List 的方式不同,藉助 JDK 8 提供的 Stream,這裡對轉換方法作個記錄。

1 - int 型陣列轉換為 List

int[] array = {1, 2, 3, 4, 5};
// Stream 表示式,先裝箱,再收集
List<Integer> list = Array.stream(array).boxed().collect(Collectors.toList());

2 - List 轉換為 int 型陣列

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
int[] array = list.stream().mapToInt(x->x).toArray();

注意:Arrays.asList() 返回的是 Arrays#ArrayList,不支援新增、刪除操作,若要進行新增和刪除,可這樣操作:
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));

3 - String 型陣列轉換為 List

String[] array = {"Hello", "World", "!"};
List<String> list = new ArrayList<>(Arrays.asList(array));

4 - List 轉換為 String 型陣列

List<String> list = new ArrayList<String>(Arrays.asList("I", "love", "Java"));
String[] array = new String[list.size]; 
list.toArray(array);

版權宣告

作者: 瘦風(https://healchow.com)

出處: 部落格園 瘦風的部落格(https://www.cnblogs.com/shoufeng)

感謝閱讀,右側導航欄有「瘦風的南牆」公眾號二維碼,輸出更及時、更體系,歡迎掃碼關注?

本文版權歸博主所有,歡迎轉載,但 [必須在頁面明顯位置標明原文連結],否則博主保留追究相關人士法律責任的權利。

相關文章