我正在尝试连接两个不同大小的二维数组。我不知道为什么我的方法不起作用。 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;
}
我仍然需要执行代码来填充条目,但这不应该是一个问题。
请帮忙吗?谢谢。
答案 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