0

我的 Java 程序中有一系列数组

Integer[] row1 = {0,0,0,0,0,0};
Integer[] row2 = {0,0,0,0,0,0};
Integer[] row3 = {0,0,0,0,0,0};
Integer[] row4 = {0,0,0,0,0,0};
Integer[] row5 = {0,0,0,0,0,0};
Integer[] row6 = {0,0,0,0,0,0};

我还有一个随机生成的 1-6 之间的数字:

    int selectrow = rand.nextInt(6)+1;

我需要根据生成的数字的值来引用每一行。所以像 "row" + selectrow 这样的东西,然后对它做一些事情,但我不确定如何在没有 if 语句的情况下实现这一点。如果语句会变得太混乱。有任何想法吗?

4

4 回答 4

1

构建一个数组数组。

并且使用int, not Integer,除非您有非常具体的原因使用昂贵的对象。

并使用循环来填充您的矩阵。除非你用它填充0并使用int,因为,嗯,它是默认值。

合而为一,这就是您的代码可能的样子:

    int[][] matrix = new int[6][6];
    Random rand = new Random();
    // there's probably something happening here
    int[] selectedRow = matrix[rand.nextInt(6)];
于 2015-06-01T14:32:18.633 回答
0

您应该使用数组数组:

Integer[][] rows = createRows();
int selectrow = rand.nextInt(6);
Integer[] = rows[selectrow];

请注意,我删除了+1变量初始化中的部分selectrow。Java 中的数组具有从 0 开始的索引。

于 2015-06-01T14:27:21.897 回答
0

与其对每一行使用单独的变量,不如使用二维数组来代替。然后选择一个新行是微不足道的:

Integer[] row = rows[rand.nextInt(6)];

(请注意,索引从 0 开始,而不是 1。)

于 2015-06-01T14:27:59.837 回答
0

将它们添加到数组数组中:

Integer[][] arrays = { row1, row2, row3, row4, row5, row6 };
Integer[] row = arrays[selectRow];
于 2015-06-01T14:29:09.070 回答