一、 List轉化成Object[]數組
List轉為Object[],可以直接調用List的toArray()方法。當然,toArray()方法不止可以轉為Object[]數組,ArrayDeque、ArrayList、CopyOnWriteArrayList、LinkedList也可以轉化成對應類型的數組。
示例:
List list = new ArrayList();
list.add("Java");
list.add("Python");
Object[] arr = list.toArray();
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
二、List轉化成指定類型的數組
有時候需要將List轉化成指定類型的數組,比如List 轉化成String[]數組。可以使用List的toArray(T[] a)方法,如果傳入的數組a的長度不足,則會自動擴展。
示例:
List list = new ArrayList();
list.add("Java");
list.add("Python");
String[] arr = list.toArray(new String[0]);
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
三、List轉化成基礎類型數組
如果需要將List 轉化成int[]數組,直接調用List的stream()轉化成流,再調用mapToInt()方法轉化成IntStream流,最後調用toArray()方法就可以了。
示例:
List list = new ArrayList();
list.add(1);
list.add(2);
int[] arr = list.stream().mapToInt(Integer::valueOf).toArray();
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
四、List轉化成二維數組
List也可以轉化成二維數組,使用List的toArray(T[][] a)方法。將每一行都加入一個一維數組中,最後將每個一維數組整合成一個二維數組。
示例:
List<List> list = new ArrayList<List>();
list.add(Arrays.asList(1,2,3));
list.add(Arrays.asList(4,5));
int[][] arr = new int[list.size()][];
for(int i = 0; i < arr.length; i++){
List row = list.get(i);
int[] rowArr = new int[row.size()];
for(int j = 0; j < row.size(); j++){
rowArr[j] = row.get(j);
}
arr[i] = rowArr;
}
for(int i = 0; i < arr.length; i++){
for(int j = 0; j < arr[i].length; j++){
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
五、注意事項
1、List轉換成數組時,不支持基本數據類型(int、double等)類型之間的轉換。需要手動實現。
2、List轉換成數組時,如果元素類型為Object或任意類型,則在toArray時候不需要傳遞參數,否則需要傳遞參數為目標類型的數組。
3、如果要將List<List>轉換成二維數組時,注意新建二維數組時,需要設置行長度,列長度則在後面設置。
綜上所述,本文介紹了通過Java的List轉為數組的幾個方面,List轉化為Object[]數組、List轉化為指定類型的數組、List轉化為基礎數據類型數組以及List轉化為二維數組。需要注意的是,不支持基本數據類型的轉換,需要手動實現。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/155211.html
微信掃一掃
支付寶掃一掃