我正在尝试实现这种输出
输入列表1的大小:5
在列表1中输入项目:1 5 16 91 248
输入列表2的大小:4
在列表2中输入项目:2 4 5 27
列表1为1 5 16 91 248
list2是2 4 5 27
合并列表为1 2 4 5 5 16 27 91248
我得到的是
输入列表1的大小:5
在列表1中输入项目:1 5 16 91 248
输入列表2的大小:4
在列表2中输入项目:2 4 5 27
列表1为1 5 16 91 248
list2是2 4 5 27线程“ main”中的异常java.lang.ArrayIndexOutofBoundsException:MergeTest.main(Mergetest.java:41)为4
我写完了代码,现在迷路了,因为我得到了 Array indexoutOfBounds Exceptoin:4 ,而且我已经在研究其他的解决方案,而我仍然没有得到。有人告诉我这可能是代码的这一部分,但我仍然完全迷失了。
static void mama(FileStream fs )
{
fs .Read(new byte[3], 0, 3);
}
这是我到目前为止所拥有的。
(a[firstIndex] <= b[secondIndex])
{
c[thirdIndex] = a[firstIndex];
firstIndex++;
}
else
{
c[thirdIndex] = b[secondIndex];
secondIndex++;
}
thirdIndex++;
}"
}
任何反馈表示赞赏。
答案 0 :(得分:0)
在第二个循环中,在您打印第二个列表的地方,您正在使用firstLength。 firstLength大于secondLength,因此对于较大的索引,它会将索引抛出绑定异常。在循环打印列表2中使用secondLength。
System.out.print("list2 is ");
for (int i = 0; i < secondLength; i++) {
System.out.print(b[i]);
System.out.print(" ");
}