1. 程式人生 > >Java List 和 陣列之間的相互轉化

Java List 和 陣列之間的相互轉化

JDK1.8以下的處理方式

List-> 陣列 1
List<String> list = new ArrayList<String>(Arrays.asList("are","you","ok","?"));
2
String[] array = new String[list.size];
3
list.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->陣列 1
List<Integer> list = new ArrayList<Integer
>(Arrays.asList(1,2,3,4,5,6));
2
int[] 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());