有没有办法在java中使用循环创建可变数量的数组?

时间:2011-06-03 21:31:59

标签: java variables loops dynamic creation

我想知道是否有一种方法可以基于可变数量在java中创建数组。因此,如果我需要创建10个数组,则循环将生成10个(所有顺序命名)。但是如果我不需要10个数组,那么循环就可以根据需要创建多个数组。

我正在设想这样的事情:

for(i=0 up to i=imax)

create arrayi

其中i是for循环中的变量。

如果imax设置为3,它将产生:array0,array1,array2,array3

感谢。

3 个答案:

答案 0 :(得分:7)

是;你可以创建一个数组数组。假设您需要int的数组:

int numberOfArrays = 10;
int[][] arrays = new int[numberOfArrays][];
for (int i = 0; i < numberOfArrays; i++)
    arrays[i] = new int[x]; // Where x is the size you want array i to be

但是,您可以动态创建名为array0array1的变量,等等。对于多维数组,不需要这样的变量集合,因为您可以写arrays[0]arrays[1];这也更灵活,因为您可以使用arrays[i]索引数组集合,如果您有array0array1等等,则无法执行此操作。

答案 1 :(得分:0)

没有机会这样做,你必须采取二维数组方法......

答案 2 :(得分:0)

Java不允许这种元编程。您无法以编程方式声明变量。

正如@Aasmund所写,你可以做的是声明一个数组来保存你的数组。

对于您的具体问题,结果如下:

String[][] array = new String[IMAX][];
for (int i = 0; i < array.length; ++i) {
  array[i] = createArray(...);
}

// cannot use 'array2', but something close:
String[] contents = array[2];