Java:第一个索引在2D数组中表示什么?

时间:2016-11-25 08:19:15

标签: java arrays

在java中,比方说我有char[][] boardboard.lengthboard[0].length代表什么? board.length的x轴和y轴的长度是board[0].length吗?

谢谢

6 个答案:

答案 0 :(得分:3)

您可以将2D数组成像到此

  • board.length - >行大小
  • board [0] .length - >第一行的列大小

enter image description here

答案 1 :(得分:3)

二维数组没有内在概念" x"和" y",或"宽度"和"身高"。二维数组甚至不具有二维的概念:它是一个"事物"的一维数组,其中每个事物都是一维数组。

enter image description here

所以char[][]是一维数组,其中每个元素都是char[];并且每个char[]都是一维数组,其中每个元素都是char。请注意,所包含的数组甚至不需要彼此具有相同的长度。

因此,您无法询问" Board.length是电路板的长度x轴和y轴[0]。长度?":它们代表如果" 39;你如何选择构建和解释你的数组。

考虑构建一个这样的数组:

char[][] board = new char[3][4];

这是一个二维数组,其中所有3个子数组的长度为4。

应用您的描述,它可以直观地表示如下:

enter image description here

所以在这里,i中的[i][j]代表x坐标,j代表y坐标。因此,board.length将是x大小,board[0].length将是y大小。

但这是另一种解释相同的二维数组的方法,其中x轴和y轴被转置。

enter image description here

现在,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的含义:

enter image description here

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)。