动态引用数组 Java
Refer To Arrays Dynamically Java
我的 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 语句的情况下实现这一点。如果语句会变得太混乱。有什么想法吗?
您应该使用数组数组:
Integer[][] rows = createRows();
int selectrow = rand.nextInt(6);
Integer[] = rows[selectrow];
请注意,我在变量 selectrow
的初始化中删除了 +1
部分。 Java 中的数组具有从 0 开始的索引。
与其为每一行使用单独的变量,不如使用 two-dimensional array 更好。选择一个新行很简单:
Integer[] row = rows[rand.nextInt(6)];
(注意索引从 0 开始,而不是 1。)
将它们添加到数组的数组中:
Integer[][] arrays = { row1, row2, row3, row4, row5, row6 };
Integer[] row = arrays[selectRow];
构建数组数组。
并使用 int
,而不是 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)];
我的 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 语句的情况下实现这一点。如果语句会变得太混乱。有什么想法吗?
您应该使用数组数组:
Integer[][] rows = createRows();
int selectrow = rand.nextInt(6);
Integer[] = rows[selectrow];
请注意,我在变量 selectrow
的初始化中删除了 +1
部分。 Java 中的数组具有从 0 开始的索引。
与其为每一行使用单独的变量,不如使用 two-dimensional array 更好。选择一个新行很简单:
Integer[] row = rows[rand.nextInt(6)];
(注意索引从 0 开始,而不是 1。)
将它们添加到数组的数组中:
Integer[][] arrays = { row1, row2, row3, row4, row5, row6 };
Integer[] row = arrays[selectRow];
构建数组数组。
并使用 int
,而不是 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)];