尝试调试错误arrayindexoutofbounds异常:4

时间:2019-11-04 05:18:48

标签: java sorting merge

我正在尝试实现这种输出

输入列表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++;
        }"

}

任何反馈表示赞赏。

1 个答案:

答案 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(" ");
}