創建新列表時,是指定初始大小還是保留空白?我知道,通過指定一個初始大小,可以避免每次添加x個項目時重新分配基礎數組,而且還會爲代碼添加冗餘。最小的性能增益值得爲你的代碼增加冗長和複雜性。如果該列表需要多一個項目,並且您忘記在初始化中添加一個項目,您仍然因重新分配的性能開銷而受到影響,那麼該數字對新開發人員而言可能沒有意義。創建新列表
Q
創建新列表
3
A
回答
5
如果你知道如何使用它,你應該總是指定一個初始大小,因爲C#開始列表的大小爲四(!),並且隨着列表的增長,大小加倍。它只是不是一個微型優化,因爲它只需要很少的努力給.Net提示。可讀性不是問題,特別是如果你可以避免magic numbers。
2
如果你真的無法準確(而且容易)預測列表的大小,請不要打擾。
不要建立任何代碼來提前確定它(少代碼==更好的代碼)。
此外,加倍是一個非常有效的方式來增加列表的性能。
4 8 16 32 64 128 256 512 1024 ...你明白了。
相關問題
- 1. 從API響應創建的列表中創建新列表
- 2. 在創建新列表之前在同一站點中創建新列表
- 3. 從表1創建或更新列,並從表2創建或更新列
- 4. 創建新列
- 5. SQL創建基於已創建表中的列的新表
- 6. 通過列表列表進行交互以創建新列表
- 7. 創建新列表與列表中的副本列表 - python
- 8. MATLAB創建新列
- 9. 創建新陣列
- 10. 創建列表
- 11. 創建列表
- 12. 創建列表
- 13. 創建列表
- 14. 與現有列表創建新地圖
- 15. 排序列表不創建新變量
- 16. 使用java8 lambdas創建新列表
- 17. 比較列名並創建新表
- 18. 如何創建新播放列表
- 19. 從namedtuple屬性創建新列表
- 20. ,而無需創建新的列表
- 21. 創建新列表的細微差異?
- 22. RxJava 2創建列表在新線程
- 23. 在Etsy上創建新列表
- 24. 搜索並創建新列表<>
- 25. 在for循環中創建新列表
- 26. 基於2列創建新工作表
- 27. Python - 使用列表創建新變量
- 28. Python的CSV創建新的HTML表列
- 29. 散列表與arraylist並創建新的陣列列表
- 30. 創建對象時不創建Python新列表