2017-07-28 77 views
1

我在Github上經歷了許多代碼庫,幾乎在任何地方我都找到了一個使用數組而不是列表的常見模式。Raw數組vs vs集合

例如:

Class Attributes { 
    ... 
    ... 
    Attribute[] attribute; 
    ... 
    ... 
} 

所以在這裏我的問題是,爲什麼這些項目大部分都是使用原始陣列,而不是收藏? 下面的代碼仍然是相同的功能明智的,使用數組需要重寫大部分代碼來處理數組的擴展。

Class Attributes { 
    ... 
    ... 
    List<Attribute> attribute; 
    ... 
    ... 
} 

編輯1:經過大量搜索後,我發現數組的內存佔用比集合低。所以現在問題出現了,爲什麼是這樣呢?

那麼,顯而易見的答案似乎是因爲內部他們使用了很多其他變量來維護狀態並做了很多其他的事情。 但是這不是必需的,我的意思是如果我們想要存儲數字並且數組的大小可以增加或減少,我們就必須實現這些方法。

+0

陣列非常緊湊並且佔用內存很小 – Lino

+0

https://stackoverflow.com/a/6105705/2686502 – jayeshsolanki93

+0

什麼是「大部分這些項目」?我傾向於指出集合比數組更經常使用。除此之外,你在某種情況下使用任何看起來合適的東西。我們怎麼知道爲什麼使用這個或那個? – Seelenvirtuose

回答

1

我不知道你的來源,但我非常確定集合比數組更經常使用,因爲它們提供了一個動態結構。然而,使用數組也有很好的理由。

- 如果你的內存有限,使用數組是更好的選擇。

- 如果你的程序有嚴格的期限,使用數組是更好的選擇。

- 如果您知道程序中使用的元素數量,使用數組是更好的選擇。簡而言之,如果您需要性能,或者資源有限,請使用數組。如果您需要功能,請使用集合。