Java本机数组长度

Sim*_*mon 3 java arrays

我在Java中有一个2D二进制数组,它基本上是一个值表,我想知道它有多少行......

它在其他地方(和分配)声明如下:

double[][] table;
Run Code Online (Sandbox Code Playgroud)

然后传递给一个函数......

private void doSomething(double[][] table)
{

}
Run Code Online (Sandbox Code Playgroud)

在我的函数中,我想知道每个维度的长度,而不必将它们作为参数传递.我可以为列数做这个,但不知道如何为行做...

int cols = table[0].length;
int rows = ?;
Run Code Online (Sandbox Code Playgroud)

我怎么做?

我可以说......

int rows = table.length;
Run Code Online (Sandbox Code Playgroud)

为什么不给行x cols?

Joa*_*uer 19

在Java中,2D数组只不过是一个数组数组.

这意味着您可以轻松获得如下行数:

int rows = array.length;
Run Code Online (Sandbox Code Playgroud)

这也意味着这样的数组中的每一行可以具有不同数量的元素(即每行可以具有不同数量的列).

int columnsInFirstRow = array[0].length;
Run Code Online (Sandbox Code Playgroud)

这只会给你第一行中的列数,但第二行可能有更多或更少的列.

您可以指定您的方法仅采用矩形数组,并假设每行的列数与第一行相同.但在这种情况下,我会将2D数组包装在某些Matrix类中(您可能需要编写).

这种数组称为Jagged数组.