2012-08-19 26 views
1

我對java很新穎。在java中創建一個類實例數組

我想有一個類的數組,其長度在運行時可能會有所不同

代碼:

class Num 
{ 
    ...... 
    ...... 
} 

如果Num是我的課,我將如何創建新實例。我當前的代碼是非常相似:從這個代碼我收到提示

Num n[ ]; 
int length=0; 
. 
. 
. 
n[length++]=new Num(); 

"Uncompilable source code - variable factors might not have been initialized" 
+4

剛擡頭,我不認爲你在收到這個錯誤重要底部與您的陣列創建語法有關。你是否有一個名爲'factors'的變量被聲明但未被初始化? – DaoWen 2012-08-19 14:33:12

回答

7

您可以使用ArrayList用於此目的。

​​

然後在需要時繼續添加Num的對象。

Num num1 = new Num(); 
myListOfNum.add(num1); 
Num num2 = new Num(); 
myListOfNum.add(num2); 

編輯:

並訪問您可以使用get()方法與具體的指標一起。

Num tempNum = myListOfNum.get(indexGoesHere); 
+0

我如何訪問ArrayList中的每個元素? – 2012-08-19 14:17:49

+1

@ sebastian-thomas'List'支持串行訪問(使用'iterator'或'listIterator')以及隨機訪問(使用'get','set','add'等) – oldrinb 2012-08-19 14:20:16

3

在試圖設置元素之前,您需要首先創建數組本身。

Num[] n = new Num[SIZE]; 

注意Num n[];只是聲明Num[]類型的變量與該標識符n

但是請注意,在java中 - 數組的長度是固定的。如果你正在尋找一個可變長度的數組,一個數組可能不是你所需要的。 @KazekageGaara建議替代 - 爲此目的。

+0

我確定大小..它可能會在運行時間不同 – 2012-08-19 14:17:02

2

使用Java集合

List將是很好的,如果序列更重要。

Set如果獨特是重要

Map鍵值對

List<MyClass> arrList = new ArrayList<MyClass>(); 

arrList.add(mobj1); 
arrList.add(mobj2); 
arrList.add(mobj3); 

for(MyClass m : arrList){ 

     // m is the Values of arrList stored in 

}