获取二维数组的长度

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

例如,在

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

如何获得nir的第二维值,即3。

谢谢

  • 将multidimensional array转换为一维数组
  • 如何在Python中声明一个数组?
  • 如何将一个二维数组的引用传递给一个函数?
  • 将multidimensional array转换为单个数组
  • PHPsorting数组通过SubArray值
  • extract()有什么问题?
  • 现在我们有std :: array什么用于C风格的数组?
  • JavaScript中是否有字典实现?
  • 9 Solutions collect form web for “获取二维数组的长度”

    3个?

    你已经创build了一个multidimensional array。 nir是int数组的数组; 你有两个长度为三的数组。

     System.out.println(nir[0].length); 

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

    另外值得注意的是,你不必象你那样初始化multidimensional array,这意味着所有的数组不必是相同的长度(或根本不存在)。

     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 

    你可以做 :

      System.out.println(nir[0].length); 

    但请注意,Java中没有真正的二维数组。 每个“第一级”数组包含另一个数组。 这些arrays中的每一个都可以具有不同的大小。 nir[0].length不一定与nir[1].length

    你可以看看http://anh.cs.luc.edu/170/notes/2dArrays/ar2.html有一个很好的图片来显示。

    使用

      System.out.print( nir[0].length); 

    看这个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]); 
     int secondDimensionSize = nir[0].length; 

    第一维的每个元素实际上是另一个具有第二维长度的数组。

    这里有一个完整的解决scheme来枚举锯齿状的二维数组(3行3列和5列)中的元素:

      String row = ""; int[][] myArray = {{11, 12, 13}, {14, 15, 16, 17}, {18, 19, 20, 21, 22}}; for (int i=0; i<myArray.length; i++) { row+="\n"; for (int j = 0; j<myArray[i].length; j++) { row += myArray[i][j] + " "; } } JOptionPane.showMessageDialog(null, "myArray contains:" + row); 

    锯齿阵列的内容

     nir[0].length 

    注意0:你必须在你的数组中至less有一个数组。
    注1:并不是所有的子数组都不需要相同的长度。

    假设第二维中每个数组的长度相同,则可以使用

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

    请记住, 2D array不是真正意义上的2D array中的每个元素本身都是一个数组,而不一定是相同的大小。 所以, nir[0].length可以或不可以等于nir[1].length nir[2]length

    希望帮助.. 🙂

    扩展为multidimensional array总长度,

    通常对于你的情况,因为二维数组的形状是“平方”。

     int length = nir.length * nir[0].length; 

    但是,对于2D数组,每行可能不具有完全相同数量的元素。 所以我们需要遍历每一行,增加元素数量。

     int length = 0; for ( int lvl = 0; lvl < _levels.length; lvl++ ) { length += _levels[ lvl ].length; } 

    如果NDarrays,这意味着我们需要N-1循环来获得每一行的大小。