在java中,比方说我有char[][] board
,board.length
和board[0].length
代表什么? board.length
的x轴和y轴的长度是board[0].length
吗?
谢谢
答案 0 :(得分:3)
答案 1 :(得分:3)
二维数组没有内在概念" x"和" y",或"宽度"和"身高"。二维数组甚至不具有二维的概念:它是一个"事物"的一维数组,其中每个事物都是一维数组。
所以char[][]
是一维数组,其中每个元素都是char[]
;并且每个char[]
都是一维数组,其中每个元素都是char
。请注意,所包含的数组甚至不需要彼此具有相同的长度。
因此,您无法询问" Board.length是电路板的长度x轴和y轴[0]。长度?":它们代表如果" 39;你如何选择构建和解释你的数组。
考虑构建一个这样的数组:
char[][] board = new char[3][4];
这是一个二维数组,其中所有3个子数组的长度为4。
应用您的描述,它可以直观地表示如下:
所以在这里,i
中的[i][j]
代表x坐标,j
代表y坐标。因此,board.length
将是x大小,board[0].length
将是y大小。
但这是另一种解释相同的二维数组的方法,其中x轴和y轴被转置。
现在,i
中的[i][j]
代表y坐标,j
代表x坐标。因此,board.length
将是y大小,board[0].length
将是x大小。
两者都不对,也没有错。这取决于您尝试代表您选择的内容。
答案 2 :(得分:2)
对于所有行,二维数组的长度可能不同。例如,考虑这个数组声明:
int [][]a = {{1,2,3},{1,2},{1,2,3,4,5},{1,2,3,4}};
此图像准确解释了a [i] .length的含义:
而a.length
是数组的行数(在本例中为4)。
答案 3 :(得分:1)
2D数组是这样的。
twoDArray.length
[0,0] [0,1] [0,2]
[1,0] [1,1] [1,2]
[2,0] [2,1] [2,2]
twoDArray[0].length
就像一排
DIRN="/Users/Olegzandr/.nvm/versions/node/v7.2.0/bin"
EXECDIR="../lib/node_modules/suman/cli/cli.sh"
RESOLVED=$(node -e "var path = require('path'); process.stdout.write(path.resolve('$DIRN/$EXECDIR'))");
就像一个专栏。
答案 4 :(得分:0)
举例来说:
char[][] board = new char[10][5];
System.out.println(board.length); // prints 10
System.out.println(board[0].length); // prints 5
数组本身的长度是第一个维度的长度。然后,访问第一维中的元素可以揭示第二维的长度等等。
答案 5 :(得分:0)
好board[0].length
返回2D数组的长度,而board
返回2D数组中第一个元素的长度,这对于 [0] [1] [2] [3] [4] [5]
[0] a b c d e f
[1] g h i f j k
[2] l m n o p q
[3] r s t u v w
[4] x y z A B C
中存储的所有数组都是相同的。这并不意味着与x轴和y轴有任何关系,但可以肯定的是,你可以像这样想象一个2d char数组:
board[x]
如果您认为board[x][x]
为表格的x轴而board.length
为y轴,则5
会返回x轴的宽度/长度(在这种情况下为board[0].length
)和4
返回y轴的高度/长度(在本例中为split
)。