哪一個更有記憶效率?
哪一個工作更快,1000000項?
有沒有更好的?列表或ArrayList?(很多項目)
2
A
回答
13
A List<T>
通常優於使用ArrayList
,因爲它是一個類型安全的集合。這意味着您可以獲得構建時間類型安全性。它也更存儲器高效爲值類型,因爲在一個ArrayList
條目將被加框,因爲它的一種類型的對象的列表:
例如:添加的整數到List<int>
將穿上使用堆的數據的int[]
作爲底層數據結構。向ArrayList
添加整數會將數據放在堆上,但由於底層數據結構爲object[]
,因此必須將數據裝箱,這意味着指針也必須存儲在堆上,這需要分配更多的內存。
ArrayList
和List<T> : class
(引用類型列表)的內存分配完全相同。
5
List<T>
比ArrayList
更好:
特定類型(比對象其他)陣列具有比一個ArrayList更好的性能,因爲ArrayList中的元素是Object類型的,因此,裝箱和取消裝箱通常在存儲或檢索值類型時發生。但是,如果不需要重新分配,則List可以具有與相同類型的數組類似的性能;也就是說,如果初始容量是列表最大大小的很好近似值。
相關問題
- 1. DataGridViewComboBoxColumn很慢很多項目
- 2. 頻率列表(ArrayList或LinkedList)項目超過700,000
- 3. 新ArrayList項目覆蓋以前的列表視圖項目
- 4. swipe事件jquery中的很多列表項目
- 5. CakePhp很多很多下拉列表
- 6. 項目和專用項目:具有重複列,主表和詳細表或多個表的多個表?
- 7. 如何打印索引或獲取ArrayList中項目的項目
- 8. 將項目添加到多維ArrayList
- 9. 從Datagrid插入多個項目到Arraylist
- 10. 從ArrayList刪除多個項目
- 11. 添加項目到多列列表框
- 12. 具有多列的html列表項目
- 13. 知道一個Python列表是否有一個項目或多個項目
- 14. 無法將ArrayList項目顯示到多列ListView中
- 15. 保存ArrayList項目
- 16. 訪問Arraylist項目
- 17. ForeignKey列來自很多表
- 18. mysql很多文本列或整數列和一個新表?
- 19. 簡單的列表項目多項選擇不選擇項目
- 20. 如何從列表中返回一個或多個項目?
- 21. 使用JS或jQuery從列表中選擇多個項目
- 22. 察看項目僅在一個列表或蟒蛇多者
- 23. 很多與「或」
- 24. 列表項或表?
- 25. 渲染列表<Canvas>作爲列表項目(或項目控件)
- 26. Android:多列ArrayList到列表視圖
- 27. 下拉列表中有很多項目,我可以與多個溺水者分享這個列表嗎?
- 28. 有很多WCF的OpenSource項目?
- 29. 下拉式包含很多項目
- 30. contentOffset沒有很多項目在UITableView
@MYYN:謝謝。 – Behrooz
@behrooz,بفرمائید – miku