3

我对java很陌生。

我想要一个类的数组,其长度在运行时可能会有所不同

代码:

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

如果 Num 是我的班级,我将如何创建新实例。我当前的代码非常类似于:

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

从这段代码我得到错误:

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

3 回答 3

7

您可以ArrayList为此目的使用一个。

ArrayList<Num> myListOfNum = new ArrayList<Num>();

然后Num在需要时继续添加 as 的对象。

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

编辑:

要访问,您可以使用该get()方法以及特定索引。

Num tempNum = myListOfNum.get(indexGoesHere);
于 2012-08-19T14:13:08.140 回答
3

您需要先创建数组本身,然后再尝试在其中设置元素。

 Num[] n = new Num[SIZE];

请注意,这Num n[];只是Num[]使用标识符声明类型变量n

但是请注意,在 java 中,数组是固定长度的。如果您正在寻找可变长度数组,那么数组可能不是您所需要的。@KazekageGaara 为此提出了一个替代方案。

于 2012-08-19T14:15:06.953 回答
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

 }
于 2012-08-19T14:29:02.140 回答