首頁 >Java >java教程 >Java中如何有效率地將List轉換為int[]?

Java中如何有效率地將List轉換為int[]?

Barbara Streisand
Barbara Streisand原創
2024-12-26 11:21:09696瀏覽

How to Efficiently Convert a List to an int[] in Java?

轉換清單 Java 中的int[]

當嘗試轉換List 時到int[],由於List .toArray() 的限制,經常會遇到混亂。雖然它會傳回一個 Object[],但該數組不能直接轉換為 int[]。

要解決此問題,常見的方法是使用循環,如問題所示。然而,Java 8 引入了一種更有效率、簡潔的使用流的解決方案。

使用流

隨著 IntStream 的引入,Java 8 提供了一種處理原始類型的便捷方法像int。以下程式碼示範如何將 List 轉換為 List 。使用流轉換為int[]:

int[] example1 = list.stream().mapToInt(i -> i).toArray();
// OR
int[] example2 = list.stream().mapToInt(Integer::intValue).toArray();

思考過程

  • 簡單的Stream#toArray 回傳一個Object[] 數組,這是不需要的。
  • IntStream 是為 int 值設計的特殊流。
  • 取得來自 Stream 的 IntStream,我們使用 mapToInt 方法。
  • mapToInt 接受一個 ToIntFunction,它將 Integer 對應到 int。這可以實作為 lambda 或方法引用。
  • Integer#intValue 對 Integer 進行拆箱以獲得底層 int 值。
  • 或者,我們可以使用簡單的拆箱來取代 mapToInt 中的 lambda,得到更簡潔的範例1。

這種基於流的方法簡化了轉換處理並消除手動循環的需要。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn