比如我定义一个数组:
int[][] a = new int[][]{(1,2),{3,4}};

int[][] b = new int[][]{{1,2},{3,4}}怎样知道这个是几乘几维的数组呢?写一个函数可以用来动态分析

解决方案 »

  1.   

    这个是没有办法判断的,因为数组还有不规则数组,也就是数组第一个元素是一个普通对象,而第二个元素却又是一个数组。如果只是你上面写的这样的,应该是可以判断的。
    b.getClass().isArray  可以判断b是不是数组,如果是数组,再可以判断b的第一个元素是不是数组,依次判断。
      

  2.   

    int[][] a = new int[][]{(1,2),{3,4}};
    就这样,假如我是一个n*2的数组,那么n如何确定?
      

  3.   

    int[][] a = new int[][]{(1,2),{3,4}};
            Object obj = a;
            while (obj != null && obj.getClass().isArray()) {
                System.out.print(Array.getLength(obj) + ", ");
                obj = Array.get(obj, 0);
            }
      

  4.   

    nt[][] a = new int[][]{(1,2),{3,4}};
            Object obj = a;
            while (obj != null && obj.getClass().isArray()) {
                System.out.print(Array.getLength(obj) + ", ");
                obj = Array.get(obj, 0);
            }