获取二维数组的长度

Num*_*tor 51 java arrays

如果我不知道它,我怎么得到数组的第二个维度?array.length只给出第一个维度.

例如,在

public class B {
    public static void main(String [] main){
        int [] [] nir = new int [2] [3];
        System.out.println(nir.length);
    }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到第二维的值nir,即3.

谢谢

Bri*_*ach 100

3个?

你已经创建了一个多维数组.nir是一个int数组的数组; 你有两个长度为3的数组.

System.out.println(nir[0].length); 
Run Code Online (Sandbox Code Playgroud)

会给你第一个数组的长度.

另外值得注意的是,您不必像过程那样初始化多维数组,这意味着所有数组的长度不必相同(或根本不存在).

int nir[][] = new int[5][];
nir[0] = new int[5];
nir[1] = new int[3];
System.out.println(nir[0].length); // 5
System.out.println(nir[1].length); // 3
System.out.println(nir[2].length); // Null pointer exception
Run Code Online (Sandbox Code Playgroud)

  • +1特别是关于非矩形的危险建议(并且我的意思是对你的数据做出假设是危险的,而不是使用非矩形的危险).这已经欺骗了许多新手程序员,并且让很多非新手程序员变得愚蠢,他们应该知道更好! (9认同)
  • 基本上`int [] [] nir = new int [2] [3]中的`3`;`是虚拟的(没有实际用途).对???或者它是否用于在每行中分配3个单元格 - 默认为no.每排cols ?? (2认同)

Ras*_*rup 16

在最新版本的 JAVA 中,您可以这样做:

nir.length //is the first dimension
nir[0].length //is the second dimension
Run Code Online (Sandbox Code Playgroud)


krt*_*tek 9

你可以做 :

 System.out.println(nir[0].length);
Run Code Online (Sandbox Code Playgroud)

但请注意,Java中没有真正的二维数组.每个"第一级"数组包含另一个数组.这些阵列中的每一个都可以具有不同的尺寸.nir[0].length不一定是相同的大小nir[1].length.

你可以看一下http://anh.cs.luc.edu/170/notes/2dArrays/ar2.html,它们有很好的图片来展示.


con*_*ius 6

使用

   System.out.print( nir[0].length);
Run Code Online (Sandbox Code Playgroud)

查看此for循环,该循环打印2维数组的内容,第二个循环遍历每一行的列

for(int row =0 ; row < ntr.length; ++row)
 for(int column =0; column<ntr[row].length;++column)
    System.out.print(ntr[row][column]);
Run Code Online (Sandbox Code Playgroud)