一、List轉為基本類型數組
使用Java 8中添加的Stream API可以非常方便地將List轉為基本類型數組。以下是將List轉為int[]的示例代碼:
List list = Arrays.asList(1, 2, 3); int[] array = list.stream().mapToInt(Integer::intValue).toArray();
在這個例子中,將List轉為IntStream,然後通過IntStream的toArray()方法得到int[]數組。
同理,將List轉為long[]也可以使用相同的方法:
List list = Arrays.asList(1L, 2L, 3L); long[] array = list.stream().mapToLong(Long::longValue).toArray();
二、List轉為Object類型數組
如果List中的元素是Object類型,可以使用List的toArray()方法將其轉為Object類型數組。以下是示例代碼:
List
如果想要將List中的元素按照某種規則轉為Object類型數組的話,可以使用Java 8中添加的Stream API。以下是示例代碼:
List list = Arrays.asList("a", "b", "c"); String[] array = list.stream().toArray(String[]::new);
在這個例子中,將List轉為Stream,然後通過Stream的toArray()方法得到String[]數組。
三、List轉為特定類型數組
如果List中的元素是特定類型,可以使用List的toArray()方法將其轉為特定類型數組。以下是示例代碼:
List list = Arrays.asList("a", "b", "c"); String[] array = list.toArray(new String[list.size()]);
在這個例子中,將List轉為String[]數組。
如果想要將List中的元素按照某種規則轉為特定類型數組的話,可以使用Java 8中添加的Stream API。以下是示例代碼:
List list = Arrays.asList(1, 2, 3); String[] array = list.stream().map(i -> "Number " + i).toArray(String[]::new);
在這個例子中,將List轉為Stream,然後通過Stream的map()方法將元素轉為String類型,最後通過Stream的toArray()方法得到String[]數組。
四、List轉為基本類型數組,避免裝箱拆箱操作
由於自動裝箱和拆箱操作十分耗費性能,可以使用第三方庫fastutil中提供的方法介面將List轉為基本類型數組。以下是將List轉為int[]的示例代碼:
List list = Arrays.asList(1, 2, 3); int[] array = list.stream().mapToInt(Integer::intValue).toArray();
五、List轉為特定類型數組,避免裝箱拆箱操作
同樣地,使用fastutil中提供的方法介面也可以將List轉為特定類型數組,避免裝箱拆箱操作。以下是示例代碼:
List list = Arrays.asList("a", "b", "c"); String[] array = list.stream().toArray(String[]::new);
六、異常處理
在將List轉為數組的過程中,由於類型轉換錯誤等原因,可能會拋出Unchecked Exception,因此應該進行異常處理。以下是示例代碼:
List list = Arrays.asList("a", "b", "c"); try { String[] array = list.stream().toArray(String[]::new); } catch (ArrayStoreException e) { System.out.println("類型轉換錯誤:" + e.getMessage()); // 處理異常 }
七、總結
本文分別介紹了Java中將List轉為基本類型數組、Object類型數組、特定類型數組的方法,並提供了使用第三方庫fastutil中提供的方法介面進行轉換的方法。同時,本文還介紹了異常處理的方法。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/258618.html