怎么求一个多维数组的长度。得正解后马上结帖的说

解决方案 »

  1.   

    FT...这种问题!循环求array[row].length累加!
      

  2.   

    int[][] array=new int[rows][];
    //initialize the array
    int totalLen=0;
    for(int i=0;i<rows;i++) totalLen+=array[i].length;
      

  3.   

    什么叫多维数组的长度?是一个数组有几维还是每一维多长如果是每一维的长度,可以告诉你,除了第一维可以得到外,其他都是有问题的比如
        int[][][] x = new int[3][][];
        x[0] = new int[2][];
        x[0][0] = new int[3];
        x[0][1] = new int[4];
        x[1] = new int[3][];
        x[1][0] = new int[3];
        x[1][1] = new int[4];
        x[1][2] = new int[5];
        x[2] = new int[1][1];
        System.out.println(Arrays.deepToString(x));//这句话是jdk1.5反正就是打印每一个元素[[[0, 0, 0], [0, 0, 0, 0]], [[0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0, 0]], [[0]]]
    也就是说第一维x.length=3
    而后第二维就有(最多)三个长度x[0~2].length;
    第三维就有x[0][0~1].length, x[1][0~2].length; x[2][0].lengthjava的多维数组的含义和C不一样
    比如有XXX[][][]这样一个数组x,假设第一维长n(x.length==n)
    那么就说明x是由连续的n个元素组成,其中,每一个元素都是XXX[][]类型,当然也包括null,因为在编译期,null可视作任何对象类型,XXX[][]肯定是对象类型,而不是原生类型,哪怕XXX是原生类型,但其(多维)数组肯定是Object假设x的第m个元素x[m]长度o(x[m].length),那么就说明x[m]由连续的o个元素组成,其中,每一个元素都是XXX[][]类型(或null同上)假设x[m]的第a个元素长b,...以此类推,每次降低一维,直到降低到XXX类型,XXX类型如果是原生类型,则不能是null
      

  4.   

    TO:
     classjava(原始野人)
     yanxiazhiqiu
     直接用于循环的时候也是先求一次值再循环?
      

  5.   

    String str[]={"a","b"};
           int i=str.length ;
      

  6.   

    楼主是不是要问XXX[][]...[]里面一共有多少个XXX元素?除了n层循环,加上判断!=null以外,似乎不行
      

  7.   

    String st[][]={{"a,b"},{"b,c"},{"b","b"}};
           System.out.println(st.length*2);
      

  8.   

    而且如果是Object[]...[][]完蛋了    Object[][][] x = new Object[3][][];
        x[0] = new Object[2][];
        x[0][0] = new int[3][4]; //int[][]=(int[])[]=(Object)[]
        x[0][1] = new int[4][5];
        x[1] = new Object[3][][]........[];//也可以,Object[][][]......[]=(Object[][]....[])[]=Object[]
        ...