[英]`List` or `array`datastructer to store pick values from array c#?
我從double
數組中找到所有選擇,那么哪種數據結構應該有效的List
或Array
來存儲結果? 我想通過不運行 memory 來提高效率。
double[] n = new double[]{2,1,6,5,3,8,1}; # could be n number of elements
如果我選擇
數組:我可以聲明第一個
result
數組以將pick元素存儲為n
的總大小,然后在找到pick后我將resize
它的大小。
列表:或者我可以使用列表,但我擔心的是“列表將在每次列表變滿時添加額外的 memory”,因此會花費運行時間。
那么我應該使用list
還是array
,因為在這里我知道result
的“最大大小”是多少?
您可以在創建列表時指定初始容量。 如果你這樣做,差異很小。 使用你喜歡的任何東西。
您應該考慮您期望的輸入范圍。 如果您希望存儲幾兆字節,它可能並不重要。 如果它是千兆字節,那么開銷和碎片可能變得很重要。 如果它是 TB,那么您將需要考慮從二級存儲中流式傳輸數據,或者一次處理單獨的數據塊。
如果數據的大小會動態增加,那么您幾乎可以肯定更喜歡列表而不是數組。 該列表在內部使用一個數組,並且在它已滿時會自動創建一個新的、更大的數組。 默認情況下,每次列表已滿時容量都會增加一倍,但您可以通過設置list.Capacity
控制。 不過,在大多數情況下,默認的增長策略應該沒問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.