首頁 > Java > java教程 > Java中如何有效率地將ArrayList轉換為Primitive int Array?

Java中如何有效率地將ArrayList轉換為Primitive int Array?

DDD
發布: 2024-12-15 07:46:13
原創
727 人瀏覽過

How to Efficiently Convert an ArrayList to a Primitive int Array in Java?

轉換ArrayList原始int 陣列

嘗試使用下列程式碼將包含Integer 物件的ArrayList 轉換為原始編譯int 陣列會導致編譯時錯誤:

List<Integer> x = new ArrayList<>();
int[] n = (int[]) x.toArray(int[x.size()]);
登入後複製

Java 8 流轉換

在 Java 8 中,更有效的方法涉及使用流 API。其實作方式如下:

int[] arr = list.stream()
    .mapToInt(Integer::intValue)
    .toArray();
登入後複製

此程式碼從清單建立一個串流,使用 Integer::intValue 方法引用將每個 Integer 物件對應到其原始 int 值,然後將 IntStream 轉換為 int 陣列使用toArray().

錯誤處理

如果清單包含任何空引用,上面的程式碼將拋出 NullPointerException。為了避免這種情況,您可以在映射之前過濾掉任何空值:

int[] arr = list.stream()
    .filter(Objects::nonNull)
    .mapToInt(Integer::intValue)
    .toArray();
登入後複製

範例:

List<Integer> list = Arrays.asList(1, 2, 3, 4);

// Convert to int[]
int[] arr1 = list.stream()
    .mapToInt(Integer::intValue)
    .toArray(); // [1, 2, 3, 4]

// Filter out nulls before conversion
list.set(1, null); // [1, null, 3, 4]
int[] arr2 = list.stream()
    .filter(Objects::nonNull)
    .mapToInt(Integer::intValue)
    .toArray(); // [1, 3, 4]
登入後複製

以上是Java中如何有效率地將ArrayList轉換為Primitive int Array?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板