【发布时间】:2018-02-27 22:35:30
【问题描述】:
我的代码旨在将两个数组组合成一个更大的数组。这两个数组被接受为方法的参数,该方法将第二个数组添加到第一个数组的末尾,并返回结果。出于某种原因,我收到了arrayIndexOutOfBoundsException。有人可以看看这个并指出我做错了什么吗?谢谢。
public static int[] merge(int[] a1, int[] a2) {
int[] sum = new int[a1.length + a2.length];
int x;
for(x = 0; x < a1.length; x++) {
sum[x] = a1[x];
}
for(int k = x; k < sum.length; k++) {
sum[k] = a2[k];
}
return sum;
}
【问题讨论】:
-
还有更简单的方法,见:Combine to arrays into one
-
你传递给方法的数组是什么?你的异常方法和stacktrace是什么?
-
如果 a1 有 5 个元素,a2 有 1 个元素,第二个 for 循环在尝试取消引用 a2[k] 时会遇到错误。
-
你想连接两个数组吗?:>
-
您不是从索引 0 开始第二个循环,即 k != 0。那么您的 sum[k] 将类似于 sum[x + k]。
标签: java arrays indexoutofboundsexception