一、 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-hant/n/155211.html