開發中經常遇到陣列和列表(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://www.cnblogs.com/shoufeng)
感謝閱讀,右側導航欄有「瘦風的南牆」公眾號二維碼,輸出更及時、更體系,歡迎掃碼關注?
本文版權歸博主所有,歡迎轉載,但 [必須在頁面明顯位置標明原文連結],否則博主保留追究相關人士法律責任的權利。