- 最後登錄
- 2024-11-28
- 在線時間
- 7571 小時
- 註冊時間
- 2008-11-3
- 閱讀權限
- 30
- 精華
- 0
- UID
- 5255050
- 帖子
- 3471
- 積分
- 3977 點
- 潛水值
- 64850 米
| 如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。 本帖最後由 kwj 於 2021-3-26 12:22 AM 編輯
- ArrayList<Integer> values = new ArrayList<>();
複製代碼 沒有宣告初始大小的話,預設是會建出長度為 10 的 ArrayList,也就是說相當於呼叫了 new ArrayList<>(10)。
指定初始大小最主要的原因是在於要避免發生 ArrayList 空間不夠用的問題。因為 ArrayList 會在空間不夠時自動擴展,但它擴展的方法效率很差(主要是在於要把所有資料搬去新的 array),所以如果可以預測需要的大小時,盡量事先指定大小,整體程式的執行效率會比較好。
除此之外,更確切地說,其實 new ArrayList<>() 在一開始是會產生一個長度為 0 的陣列,然後真正上面所說的「預設會建出長度為 10 的 ArrayList」是在第一次對這個 ArrayList 呼叫 add() 的時候。換言之,這個設計是為了 lazy initialize,只有在你實際地使用到這個 ArrayList 時,它才會幫你向系統索取資源。...
|
|