【问题标题】:Is there a way I can create a variable number of arrays using a loop in java?有没有办法可以在java中使用循环创建可变数量的数组?
【发布时间】:2011-09-08 03:22:01
【问题描述】:

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

我正在设想这样的事情:

for(i=0 up to i=imax)

create arrayi

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

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

谢谢。

【问题讨论】:

  • 请准确说明这些数组应该包含什么以及它们应该有多大。

标签: java variables loops dynamic creation


【解决方案1】:

是的;您可以创建一个数组数组。假设您想要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 等则无法做到这一点。

【讨论】:

  • 是的,与想要的解决方案最相似的是使用 Hashmap
  • 太棒了!这绝对是我将要使用的。这个问题在我脑海里盘旋了一段时间,但你的实现更容易并且效果更好。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    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];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-08
      • 2017-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多