多维数组问题Java

时间:2017-07-29 19:30:51

标签: java arrays multidimensional-array parameter-passing

每当我将两个1-d数组作为参数传递给2-d数组时它工作正常,但是当我尝试将三个1-d数组传递给3-d数组参数方法时,它会给出错误但是当我将三个1-d数组传递给2-d数组时,同样工作正常。

这种行为的原因是什么?

两个1维阵列到2维方法: -

int[] c=new int[] {4,50};
        m1(new int[]{10,20},c);


    public static void m1(int[]... a)]

三维一维阵列到三维方法: - ,错误 - The method m1(int[][]...) in the type Asd is not applicable for the arguments (int[], int[], int[])

    int[] b=new int[] {3,50};
int[] c=new int[] {4,50};
        m1(new int[]{10,20},c,new int[] {4,50});


    public static void m1(int[][]... a)

三个一维阵列到二维阵列: -

int[] c=new int[] {4,50};
        m1(new int[]{10,20},c,new int[] {4,50});
    }

    public static void m1(int[]... a)

1 个答案:

答案 0 :(得分:3)

省略号(...)只是一个数组。

int[]...a <=> int[][] a

int[][]...a <=> int[][][] a

在第二个例子中,m1方法等待3d数组或2d数组的列表,但是你用1d数组列表调用它

好的电话是:

m1(new int[][], new int[][] , ...)

并且在m1方法中,a arg的类型为int [] [] []