toArray(new MyClass[0]) 或 toArray(new MyClass[myList.size()])?
在上下文中Java ArrayLists 中,toArray 方法可用來將 ArrayList 轉換為指定類型的陣列。但是,在使用空數組或列表精確大小的數組之間進行選擇可能會影響效能。
效能注意事項
直觀上,似乎需要預先調整數組,如 toArray(new MyClass[myList.size()]) ,會更有效。然而,微觀基準測試表明,使用空數組 toArray(new MyClass[0]) 始終優於預先調整大小的方法,尤其是對於較大的清單。
為什麼空數組更快
這種違反直覺的更快性能是由於 JVM 優化而產生的。 JVM 和 JIT 編譯器具有用於建立和初始化數組的內建最佳化,手動建立數組時不會使用這些最佳化。
現實世界的影響
雖然對於小型陣列,性能差異可能並不顯著,但對於較大陣列,性能差異可能會變得明顯。因此,對於效能關鍵的情況或最佳化的內部循環,建議使用 toArray(new MyClass[0])。
總結
與最初的期望相反,使用與預先調整數組大小相比,ArrayList 的空數組(toArray(new MyClass[0])) 表現出卓越的性能。這歸因於 JVM 最佳化可以有效地處理陣列建立和初始化,而在手動建立陣列時無法利用這一點。
以上是`toArray(new MyClass[0]) 或 toArray(new MyClass[myList.size()]):對於 Java ArrayList 來說哪個比較快?的詳細內容。更多資訊請關注PHP中文網其他相關文章!