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. 爲什麼我不能設置我的視圖的重力
- 2. 爲什麼Socket.Select(...)需要IList而不是(也)IList <Socket>?
- 3. 設置重力
- 4. suPHP的重要性是什麼?
- 5. xml架構的重要性是什麼?
- 6. jboss.bind.address的重要性是什麼
- 7. WCF中IMetadataExchange的重要性是什麼?
- 8. 使用Random.setSeed的重要性是什麼?
- 9. Hibernate需要的C3P0設置是什麼?
- 10. LinearLayout設置重力
- 11. 什麼是nosql dbs的重要性能機制?
- 12. 能力時,沒有屬性被設置
- 13. 設置佈局的重力
- 14. RijndaelManaged - 設置KeySize屬性的功能是什麼?
- 15. 什麼是Android Picasso的高性能最佳緩存設置?
- 16. 重量設置性能
- 17. 什麼是中性語言設置?
- 18. xml屬性「id」似乎是受保護的屬性。需要什麼配置才能設置它?
- 19. 爲什麼要設置ServicePointManager.SecurityProtocol
- 20. 什麼是設置
- 21. 在ScrollView中設置重力
- 22. Android - 設置TileMode和重力
- 23. 什麼是element.style,它爲什麼重寫我的CSS設置?
- 24. 什麼是html5中角色屬性的重要性?
- 25. 什麼是CSS屬性background-repeat的必要性:重複;
- 26. 問號的重要性是什麼?這段代碼的好處是什麼?
- 27. 什麼是主要屬性?
- 28. 什麼是mysql鏈接標識符以及它的重要性是什麼?
- 29. 什麼是relativepagescore元標記,它在SEO中的重要性是什麼?
- 30. Maven在JAR文件中放置的POM文件的重要性是什麼?