连接二维参差不齐的数组(Java)

时间:2014-04-23 02:21:27

标签: java arrays multidimensional-array

我正在尝试连接两个不同大小的二维数组。我不知道为什么我的方法不起作用。 Java告诉我,当我将鼠标悬停在“return xx”上时:“类型不匹配:无法从int [] []转换为int []”。当我将鼠标悬停在“concatenateArr2d ...”上时,我得到:“参数concatenateArr2d的非法修饰符:只允许最终版本”。

我不明白为什么会收到此错误。

    public static int[][] concatenateArr2d(int[][] t, int[][] s)
{
    int[][] xx = new int[t.length + s.length][];
    for(i = 0; i < xx.length; i++)
    {
        xx[i] = new int[t[i].length + s[i].length];
    }
    return xx;
}

我仍然需要执行代码来填充条目,但这不应该是一个问题。

请帮忙吗?谢谢。

2 个答案:

答案 0 :(得分:0)

在我看来,您粘贴的位之前的代码没有对齐的大括号。当您尝试声明此方法时,您可能在方法内部。

答案 1 :(得分:-1)

public class HelloWorld{

public static int[][] concatenateArr2d(int[][] t, int[][] s)
{

int jLength=0;
// The below line of code is to determine second dimension size of new array
jLength=Math.max(s[0].length, t[0].length);


int sIterate=0;
//new array created using size of first+second array for First dimension and maximum size for second dimension
int[][] xx = new int[t.length + s.length][jLength];

//first array copy
for(int i = 0; i < t.length; i++)
{
    for(int j = 0; j < t[0].length; j++)
    {
    xx[i][j] =t[i][j];
    }
}
//second array copy
for(int i = t.length; i < xx.length; i++)
{

    for(int j = 0; j < s[0].length; j++)
    {
    xx[i][j] =s[sIterate][j];
    }
    sIterate++;
}
return xx;
}
public static void main(String []args){
     int a[][]={{1,2},{2,3},{1,1}};
     int b[][]={{1,2,3},{2,3,4}};
     int c[][]=HelloWorld.concatenateArr2d(a,b);
     //Output iteration
     for(int i = 0; i < c.length; i++)
{
    for(int j = 0; j < c[0].length; j++)
    {
    System.out.print(c[i][j]);
    }
     System.out.println();
}
 }
}



note : The blanks filled by 'primitive type default value' like, for int its 0.

Output :
120
230
110
123
234