Java阵列2x2及其工作原理
http://www.willamette.edu/~gorr/classes/cs231/lectures/chapter9/arrays2d.htm
我正在看上面“对象数组”部分下的链接
此代码由上面的链接提供
for (int i=0; i < board.length ; i++)
for (int j=0; j < board[i].length ; j++)
board[i][j] = rand.nextInt(10);
有没有人能向我详细解释一下这段代码,以及它是如何用随机整数填充网格的,尤其是带有
board.length
及
board[i].length
# 1 楼答案
board
是一个2D数组,换句话说,它是一个数组数组。比如说:表达式{{CD2>}从^ {}数组访问公共属性^ {CD3>},您应该考虑^ ^ }是数组,但其元素也是数组。
然后,您将遍历索引
for (int i = 0; i < board.length; i++)
i
将取值范围从0
到board.length-1
(因为<
)因此,在每次迭代中,您都要访问当前元素的长度:
最后,当您访问
board[i][j]
时,您访问的是board
元素中的一个元素。换句话说,您正在访问数组的一个元素,而这个数组是2D数组board
的一个元素# 2 楼答案
您所引用的数据结构是一个包含引用的数组。在下图中,
b[0]
、b[1]
和b[2]
分别是对数组[A、B、C]、[D]和[E、F]的引用。因此,b.length = 3
,因为它包含三个引用代码中的嵌套for循环将从左到右、从上到下访问图中的每个单元格。
i
的目的是迭代行,也就是说,指示必须访问b[0]
,然后是b[1]
,然后是b[2]
。j
的目的是迭代一行中的单元格,也就是说,当i=0
时,我们必须访问列0、1和2以查找A、B和c。当i=1
时,j
访问列0并查找D。最后,当i=2
时,j
访问列0和1以查找E和F