2011-12-02 70 views
0

我想使用一個列表來存儲某些類型的對象(爲了簡單起見,我們可以說 - 書),所以我可以在listview對象中顯示它們。 IM還挺新本,所以我要求更先進和有經驗的用戶的幫助有關以下的爭論 -LinkedList vs ArrayList - 要求實現想法的觀點

  1. 使用哪一個?鏈表是我熟悉的東西。然而,我如何讓應用程序保持列表?我應該將每個對象的細節保存在XML中嗎?如果我這樣做,是不是更好地使用Arraylist? (請在回答中排除與處理時間有關的事情)。

  2. 如果不是通過xml - 即使應用程序關閉並且稍後激活,我如何「存儲」列表供以後使用?

謝謝!

回答

1

的ArrayList是很好用。它們也適合迭代通過LinkedList s。

OTOH,LinkedList不需要調整大小,當內存不足以容納更多節點時,它只會耗盡空間。如果您有大量數據增長,或者您正在進行大量順序添加/刪除操作,那麼LinkedList將在性能上勝出。

有時候,你需要同時隨機存取增長,在這種情況下,你需要做出哪些標準要更高性能的一個判斷。

在你目前使用的情況下,我可能會選擇一個ArrayList,你可能知道的名單應該多大,它不會在大小經常變化的,如果你想在顯示這件事情一個GUI,你可能需要做索引查找。

就存儲列表而言,XML與CSV文件(或普通的行分隔文本文件),YAML,JSON甚至類的序列化都是一種可選方式,選擇最簡單和最方便的方式您。

+0

ArrayList的調整大小實際上非常快,並且不會真正影響添加元素的全局複雜性,這往往會導致長期的o(1)。 _removing_的元素,在另一方面,爲O(n),無論怎樣,對O(1)爲一個鏈表 – njzk2

0

我寧願過的LinkedList ArrayList的,因爲它有方法來操作內部使用存儲列表

如果我要使用它作爲一個棧,隊列中的數組的大小,或雙端隊列然後我會使用一個LinkedList