Java &引用;错误:需要数组,但找到int";在爪哇

Java &引用;错误:需要数组,但找到int";在爪哇,java,Java,我必须在tabFinal上合并tab1,tab2,tab3 int[] tab1 = {4,17}; int[] tab2 = {11,12}; int[] tab3 = {5,3}; int[] tabFinal = new int [tab1.length + tab2.length + tab3.length]; 我的问题是,当我尝试显示我的值时,出现了一条错误消息: Main.java:19:错误:需要数组,但int找到System.out.println(tabFinal[i][j

我必须在
tabFinal
上合并
tab1
tab2
tab3

int[] tab1 = {4,17};
int[] tab2 = {11,12};
int[] tab3 = {5,3};

int[] tabFinal = new int [tab1.length + tab2.length + tab3.length];
我的问题是,当我尝试显示我的值时,出现了一条错误消息:

Main.java:19:错误:需要数组,但int找到System.out.println(tabFinal[i][j])

我不明白问题出在哪里

for(int i=0; i<tabFinal.length; i++){
   for(var j=0; j<tabFinal[i].length; j++){
     System.out.println(tabFinal[i][j] + " ");
   }
}

tabFinal
是一维数组。试图将索引细分为一维数组将产生该问题

简单的解决方法是:使
tabFinal
二维

int[][] tabFinal = new int[3][2];

那么你的索引就可以工作了。但是,在打印值之前,请确保实际将值放入数组中,因为您只打印0,而数组中没有值。

如果您希望生成的数组是1D,因为tabFinal的定义是1D:

有很多方法可以连接数组。此线程具有广泛的集合:


顺便说一句,你需要一个简单的循环来打印这个数组,而不是一个嵌套的循环。

像这样创建和填充你的数组

int[][] tabFinal = new int[3][];
tabFinal[0] = tab1;
tabFinal[1] = tab2;
tabFinal[2] = tab3;

因为
int[]tabFinal
tabFinal[i]
是一个
int
在这个上下文中使用merge是什么意思,你能添加预期的结果吗?是什么让你认为
int[]tabFinal
是2d数组(因为你正在尝试
tabFinal[i]。length
tabFinal[i][j] 
)?您希望/希望成为
tabFinal
的内容是什么?很好,但这并没有告诉我您希望如何合并阵列。tabFinal是一维数组还是二维数组?谢谢,但是我应该在[2][2]上放什么?我可能是打错了。大小应为
[3][2]
,三行两列。我认为这是原始海报真正想要的最佳答案,因为他们希望每个响应都有一个1D串联数组输出。@user12669945然后您需要阅读问题的注释,OP需要一个2D数组。非常感谢Joakim,现在一切都好了。
int[][] tabFinal = new int[3][2];
int[][] tabFinal = new int[3][];
tabFinal[0] = tab1;
tabFinal[1] = tab2;
tabFinal[2] = tab3;