2D数组:在运行时确定的1维,在编译时已知的其他维

时间:2014-07-21 22:13:17

标签: java arrays multidimensional-array

名为generateRandomArray(int minLength, int maxLength, int minVal, intMaxVal)的方法返回随机长度的随机数组。我想要生成1个随机数组,然后将其复制5次。我计划对数组进行大部分相同的操作,所以我希望能够在这些数组的数组上使用循环。所以我想要一个2D数组,其中1维是返回的随机生成数组的长度,另一维是6.我该怎么做? int[][6] test = generateRandomArray(3,50,-100,100)[];提供] expected

现在我有

    int[] a1 = generateRandomArray(minLength, maxLength, minVal, maxVal);
    int[] a2 = a1.clone();
    int[] a3 = a2.clone();
    int[] a4 = a3.clone();
    int[] a5 = a4.clone();
    int[] a6 = a5.clone();
    a1.doWork();
    a2.doWork();
    a3.doWork();
    //...
    a1.callMethodX();
    a2.callMethodY();
    a3.callMethodZ();
    //...
    System.out.println(Array.toString(a1));
    System.out.println(Array.toString(a2));
    System.out.println(Array.toString(a3));
    System.out.println(Array.toString(a4));
    System.out.println(Array.toString(a5));
    System.out.println(Array.toString(a6));

1 个答案:

答案 0 :(得分:1)

听起来像这样:

int[] a1 = generateRandomArray(minLength, maxLength, minVal, maxVal);
int a[][] = new int[6][];
for (int i=0; i<a.length; i++) {
    a[i] = a1.clone();
}

您创建一个可容纳6个数组的数组。然后使用循环将随机数组的6个副本放入此数组中。

// Using it:
for (int i=0; i<a.length; i++) {
    a[i].doWork();
    System.out.println(Arrays.toString(a[i]));
}