在 Java 中將清單轉換為陣列
許多 Java 開發人員都會遇到將清單轉換為陣列的需要。對於將 List 的元素傳遞給舊版 API 或操作特定資料結構中的資料等任務,這種轉換通常是必要的。
方法 1:toArray(new Foo[0])
toArray() 方法提供了一種將 List 轉換為陣列的有效方法。透過指定所需類型的空數組作為參數,Java 會自動建立適當大小的數組,並將 List 的元素複製到其中。
Foo[] array = list.toArray(new Foo[0]);
當陣列類型未知時,此方法特別有用,因為 toArray() 方法可以動態推斷它。
方法2:toArray(new Foo[list.size()])
或者,開發人員可以使用toArray() 方法並將預先分配的陣列作為參數,將陣列預先調整為List 的大小。但是,由於潛在的效能缺陷和並發問題,不建議使用此方法。
Foo[] array = new Foo[list.size()]; list.toArray(array);
更新:toArray(new Foo[0])的偏好
中最近的Java 版本中,強烈建議使用toArray(new Foo[0] ) 而不是toArray(new Foo[list.size()])。這是因為Java基於反射的陣列建立已經過最佳化,使得空數組版本更快、更可靠。此外,如果在轉換過程中修改 List,則預先確定大小的陣列方法可能會導致並發問題。
結論
在 Java 中將 List 轉換為 Array ,開發人員可以使用 toArray() 方法。建議使用 toArray(new Foo[0]) 方法,因為它的效率和可靠性,而應避免使用 toArray(new Foo[list.size()]) 方法,除非需要向後相容。
以上是如何有效率地將Java列表轉換為陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!