只是出于好奇,基于该代码有没有一种方法可以实现这一点,而不是
int [][]d = { obj[0].ar , obj[1].ar , obj[2].ar };
可以像这个一样在for
下写入
for(int i=0;i<obj.ar.length;i++)
或者仅仅使用CCD_ 3将CCD_?
public class Main
{
public static void main(String[] args)
{
int nb = 3;
arr[] obj = new arr[nb];
for(int i=0;i<obj.length;i++)
{
obj[i] = new arr(i+2);
}
int [][]d = { obj[0].ar , obj[1].ar , obj[2].ar };
for(int i=0;i<d.length;i++)
{
for(int j=0;j<d[i].length;j++)
System.out.print(d[i][j]+"t");
System.out.println();
}
}
}
class arr
{
int []ar;
arr(int nb)
{
ar = new int[nb];
for(int i=0;i<ar.length;i++)
ar[i]=i;
}
}
Java数组在创建时必须始终具有确定的大小。
请注意,您总是在对new
数组的调用中设置nb
,或者通过使用{}
实例化器来静态计算对象的数量。
你所要求的可能是ArrayList
想要实现的目标。它将随着您的发展而增长,同时在幕后实现阵列。如果数组中无法容纳内容,则会创建一个新的更大的数组来容纳所有内容。不过,在使用时您不会注意到这一点。
ArrayList<ArrayList<Integer>> obj = new ArrayList<>();
obj.add(new ArrayList<>());
obj.add(new ArrayList<>());
obj.add(new ArrayList<>());
// There are now three empty lists, in the main list.
自从java9以来,您可以使用一些额外的助手方法:
List<List<Integer>> obj = List.of(
List.of(1,2,3),
List.of(2,3,4)
);
如果你愿意,你可以实现你自己的ArrayList
类,这并不难!