2012-11-22 77 views
2

我想轉換一段代碼使用自定義對象的ArrayList到一個常規數組。Arraylist與陣列與在java中的自定義對象

上我的定義是

ArrayList<Room> rooms = new ArrayList<Room>(); 

這是我現在改爲

Room[] rooms; 

以前我用下面的行項目添加到數組列表

rooms.add(new Room(1,1,30,false,true,true,false)); 

但我我正在努力尋找我應該在整個代碼中簡單地將單個項目添加到數組的方式。

+0

你問的是如何將一個數組的元素添加到ArrayList(反之亦然)? – fireshadow52

+0

我想離開使用數組列表,我想將數組從列表中添加到數組中。 –

+0

'List rooms = new ArrayList ();'更加可取(編碼爲接口原理) –

回答

2

我認爲你最好在這裏堅持使用arrayList,但只是爲了讓你更清楚一點。

要做你正在做的事情,你將不得不保留一個索引整數,它將指向數組中的當前位置,然後當你添加時,可以增加它並將新對象添加到下一個獲取。 當您達到陣列的最大尺寸時,您需要展開它。 你會發現擴大陣列已經有問題了,你可以在這裏找到答案: Expanding an Array?

+0

其實很簡單:只需複製粘貼'ArrayList'的確切實現。你當然無法打敗。 –

0

如果在添加其他元素時需要增加數組的大小,則必須構造另一個數組,其大小爲舊數組+1。 之後,您會將舊數組的內容複製到新數組(更大的數組)中。

1

如果你可以住在一個固定大小的數組中,那至少會給你一點成功的機會。如果沒有,你不能擊敗ArrayList,如果你的任務是在不重新實現的情況下取得成功,那麼這是一個不可能完成的任務。

你真的應該更深入地瞭解重寫代碼的確切原因,它會給我們一些機會來幫助你。

+0

特別是當你努力向數組中添加一個元素時。 –

1

我可以推薦:
使用Arraylist只要你需要插入元素。一旦陣列最終轉換爲陣列。