Java List 和 陣列之間的相互轉化
阿新 • • 發佈:2019-01-30
JDK1.8以下的處理方式
List-> 陣列 1List<String> list = new ArrayList<String>(Arrays.asList("are","you","ok","?"));
2String[] array = new String[list.size];
3list.toArray(array);
陣列->List
1
String[] array = {"are","you","ok","?"};
2
List<String> list = new ArrayList<String >(Arrays.asList(array));
傳統的這種轉換方式有一個缺陷,那就是無法完成裝箱型別和對應的基本型別之間的轉換,比如List<Integer>轉int[],int[]轉List<Integer>,這是由於泛型的型別擦除所引起的,對於這個情況,任然還是要使用迴圈一個一個數據進行裝載;
在JDK1.8提供了stream流,可以用於解決裝箱型別和基本類性之間,陣列和List的轉換;
JDK1.8的處理方式
List->陣列 1List<Integer> list = new ArrayList<Integer >(Arrays.asList(1,2,3,4,5,6));
2int[] array = list.stream().mapToInt(x->x).toArray();
陣列->List
1
int[] array = {1,2,3,4,5,6};
2
List<Integer> list = Array.stream(array).boxed().collect(Collectors.toList());