7
A
回答
14
在List<T>
的內部,有一個靜態大小的集合來保存您的項目。一旦你達到那個系列的容量,List<T>
重新調整它的性能(對你來說可能不重要)。
通過設置初始容量,您可以避免執行這些重新調整操作。
7
每當列表需要超出其當前容量時,內存重新分配和四處移動必須發生,這需要時間和精力。
如果您事先知道列表的大小,您可以避免這種情況。
3
由於列表不需要增長,因此您的速度會有所提高。增加一個列表是O(n),其中n是當前元素的數量,並且標準List<>
通過將其當前大小加倍而增長。考慮到所有事情,在列表末尾添加一個元素仍然平均是O(1)操作(這是因爲最後插入n個元素,平均每次插入n個元素(每個元素爲O(1 )操作),以及在舊緩衝區和較新緩衝區(每個操作都是O(1)操作)之間進行n次複製操作,因此每個添加都處於過期O(1))
3
這會稍微提高性能,在創建列表時分配,並且在添加更多元素時,CLR不必增加列表大小。
請注意,即使您指定了列表大小,如果您添加的元素多於預期值,它也會增加。
相關問題
- 1. 爲什麼Socket.Select(...)需要IList而不是(也)IList <Socket>?
- 2. 設置重力
- 3. jboss.bind.address的重要性是什麼
- 4. WCF中IMetadataExchange的重要性是什麼?
- 5. suPHP的重要性是什麼?
- 6. xml架構的重要性是什麼?
- 7. 能力時,沒有屬性被設置
- 8. 設置佈局的重力
- 9. 什麼是Android Picasso的高性能最佳緩存設置?
- 10. 什麼是中性語言設置?
- 11. xml屬性「id」似乎是受保護的屬性。需要什麼配置才能設置它?
- 12. 爲什麼要設置ServicePointManager.SecurityProtocol
- 13. 什麼是設置
- 14. 什麼是element.style,它爲什麼重寫我的CSS設置?
- 15. 什麼是主要屬性?
- 16. 什麼是relativepagescore元標記,它在SEO中的重要性是什麼?
- 17. Maven在JAR文件中放置的POM文件的重要性是什麼?
- 18. 爲什麼要設置爲零並釋放UIViewController的屬性?
- 19. 什麼是設置no-cache =「設置Cookie」
- 20. Java 9中的java.se模塊的重要性是什麼?
- 21. 在CSS屬性的末尾添加重要的是什麼?
- 22. Silverlight的努力屬性設置
- 23. MT4J在MTComponent的中心設置重力
- 24. nodejs版本v0.6.21-pre中「pre」的重要性是什麼?
- 25. 用戶樣式表的用處和重要性是什麼?
- 26. 在elixir(Laravel)中使用.version的重要性是什麼?
- 27. 成員變量中前綴的重要性是什麼?
- 28. 同步Java塊中volatile關鍵字的重要性是什麼?
- 29. 什麼是Silverlight 4.0的重要特性(最常見)
- 30. App ID,捆綁ID的隱私 - 重要性是什麼?