2012-11-11 64 views
-1

我想知道什麼列表對象正在幕後看。是否有一個數組變大,一個元素有一個對另一個對象的引用等等。有沒有更好的方法來實現我自己的列表,如任何語言像C#,Java,...或者你會用什麼?動態列表的邏輯

編輯:我忘了說使用索引來獲取或設置對象的能力應該儘可能快。

回答

1

如果不知道你的語言/框架,這是不可能的。

例如,.NET Framework List<T>基於數組,並且在超過初始容量時調整大小。但在另一個框架中,它有可能被實現爲另一個數據結構。

+0

如果我使用數組,那麼性能會很差嗎? –

+0

與其他一切一樣,這取決於。對於小型列表,調整大小的開銷可以忽略不計,並且按索引訪問總是O(1)。它在需要調整大小的大型列表上很重要 - 這就是爲什麼可以使用預定義容量構建列表,以避免昂貴的大小調整。 – driis

+0

...並且如果插入性能至關重要,您可以隨時選擇其他數據結構。 – driis