2011-09-08 18 views
4

我正在編寫一個程序,它將嚴重依賴於......某些東西......它存儲的數據類似於數組,我可以在任何給定時間訪問數據的任意點我可以在一個數組中。用於java的數組vs array []

我知道java庫有一個我可以使用的Array類,或者我可以使用原始數組[]。

我期望使用數組類型更容易編碼,但我期望它的效率也稍低。

我的問題是,哪個更適合在這兩者之間使用,還有更好的方法來完成相同的結果嗎?

+0

究竟是什麼你想怎麼辦?你知道預先存儲了多少元素嗎? –

+1

你真的指'Array',還是你的意思是'ArrayList'? – Gabe

+0

是[這](http://download.oracle.com/javase/6/docs/api/java/lang/reflect/Array.html)的'Array'你指的是?這只是一個實用程序類。 –

回答

5

實際上Array將是沒有幫助 - 這不是你所想的那樣。另一方面,類別java.util.ArrayList是。一般來說,如果您可以使用類似ArrayList這樣的集合類進行編程,那麼您可以更輕鬆地獲得更易於閱讀的正確靈活的軟件。這個「如果」幾乎一直都適用;原始數組是作爲最後手段使用的東西,或者更常見的情況是,當您要調用的方法需要一個作爲參數時。

+0

啊。謝謝,ArrayList是我正在尋找和這回答我的問題。 – Andy

3

Array類用於Java 反射並且非常非常少用。

如果要將數據存儲在數組中,請使用普通的舊數組,如[]或Gabe對此問題的建議java.util.ArrayListArrayList是,因爲你的評論建議更容易編碼(當涉及到添加和刪除元素!!),但是,效率稍低。對於可變尺寸的集合,ArrayList幾乎都是必需的。

2

我的問題是,哪個更適合在這兩者之間使用,還有更好的方法來完成相同的結果嗎?

這取決於你想要達到的目的:

  • 如果元素的數組中的數量是已知的時間提前,然後數組類型是一個不錯的選擇。如果不是,則List類型(至少)更方便使用。

  • List接口提供了許多方法,如containsinsertremove等,可以節省你的編碼...如果你需要做那種事。

  • 如果正確使用,數組類型將佔用更少的空間。對於使用List表示元素需要使用包裝類型來表示的原始類型的數組,這種差別尤其顯着(例如byte變爲Byte)。


Array類是在此上下文中是有用的,並且既不是Arrays類。選擇範圍在ArrayList(或其他List實現類)和原始數組之間。

-2

在易用性方面,Array類更容易編碼。 數組[]在你需要知道 對象列表事先的大小的情況而言相當有問題。

相反,你可以使用HashMap。它在搜索和排序上非常高效,因爲整個過程都是按照關鍵值進行的。

你可以宣佈一個HashMap爲:

HashMap<String, Object> map = new HashMap<String, Object>(); 

因爲你可以使用你的類的對象,重點使用它需要的值是唯一的。

+0

爲什麼它被拒絕投票?提問者沒有要求換一種方式嗎? – venomrld

+1

-1「Array類是比較容易的代碼有很多」 - 'Array'是一個工具類,以及它已經建立了OP的意思'ArrayList'。另外,'HashMap'提供了OP不需要的功能,不再像數組或List一樣排序。 –