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