在 Java 中,对象数组是不可变的并且必须被初始化。
要做的事情很少。
您可以在分配期间提供元素:
Test t[] = { new Test(10, 20), new Test(30, 40) };
如果你不知道这些值,你可以给数组分配正确的分配:
Test t[] = new Test[4];
在您的情况下,您仍然需要初始化数组。
一般来说,声明时不需要这样做,除非变量是 final 的。
Test t[]; // declaration
t[] = new Test[20]; // assignment
for ( i=0 ; i<20 ; i++ ) {
t[i] = new Test(10,20);
}
Java 也有一组类可以处理列表、数组、键值集和链表。
如果您需要使用可变数组,请使用ArrayList 对象。
这将允许您避免初始化。
这是一个简单的例子:
ArrayList<Test> t = new ArrayList<Test>();
for( i=0 ; i<20 ; i++ ) {
t.add(new Test(10,20));
}
与不可变对象数组相比,可变列表成本高昂,但 Java 编码人员确实使用 System.arraycopy() 函数调整了 ArrayList 类。
因此您不会看到性能下降太多。
简单地说,只有在您完全无法知道所需的分配空间时才使用可变的 ArrayList。