2014-02-13 88 views
1

我可是從Perl的未來在那裏哈希和數組是舒適的使用,因爲它們是非常動態,做很多的東西,在這通常會得罪程序員的背景。推薦在Java中使用ArrayLists和HashMaps?

這個我開始因爲它們使編程工作豆蔻位更容易,更快地使用包含HashMap和的ArrayList類似。但性能如何?是否建議將這些類型的數據用於較大的項目,還是僅限於使用字符串和數組的Java核心?

感謝所有的答案:-)))

+0

相關:http://stackoverflow.com/q/629804/1065197 –

+2

最好使用具有數據類型的類,不是出於性能原因,而是出於清晰性和可維護性。 BTW對象速度更快,使用的內存也更少。 –

+0

是的,沒有。我創建了'PerlArray'和'PerlHash'來完成我喜歡用Perl數組和哈希進行處理的類型。如果我要使用Java數組,我幾乎在'ArrayList'中管理它們。但是哈希查詢都不會被作爲附近基本上什麼相當於一個*結構*,其中偏移可以直接存儲在字節碼一樣快。我並不總是用Java編程,但是當我這樣做時,我使用對象來創建關係和算法的數據和容器。 – Axeman

回答

1

如果您的數據不變,您只需寫入一次(或幾次)並讀取很多次,則數組可能(非常輕微)比ArrayList快。數組也可能會消耗(少量)少於ArrayList的內存。但是,ArrayList尤其是一個經常使用的類,所以能夠使用它(並且更一般地用於實現List接口的其他類)是有用的,並且在它下面,元素存儲在數組中,因此訪問應該不是確實會變慢。

HashMap小號實現基於散列的地圖。它們通常是一個訪問數據結構和實現,因此它們確實值得推薦。作爲實現Map接口的類,它們也映射一個對象到另一個,這是一個經常遇到的問題的有用方法。

大多數Collections類(和接口)設計良好,易於使用。

1

HashMapArrayList等都是核心Java庫的一部分,並建議使用。

您應該調查其他Collection S以及雖然,因爲這取決於你正在做一些其他的選擇可能是什麼,甚至對你更好。