【发布时间】:2015-08-12 15:05:45
【问题描述】:
我已经编写了在 Java 中合并两个排序数组的代码。
public class MergeSortedArrays {
public static int[] my_array = {3, 4, 6, 10, 11, 15};
public static int[] alices_array = {1, 5, 8, 12, 14, 19};
public static void main(String[] args) {
// TODO Auto-generated method stub
int length = my_array.length + alices_array.length;
int[] new_array = new int[length];
int i = 0;
int j = 0;
int count = 0;
while (count < length) {
if(my_array[i] < alices_array[j] ) {
new_array[count] = my_array[i];
i++;
} else {
new_array[count] = alices_array[j];
j++;
}
count++;
}
for(int k=0;k<length;k++) {
System.out.println(new_array[k]);
}
}
}
但是我收到了这个错误-
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at MergeSortedArrays.main(MergeSortedArrays.java:15)
在合并完成之前,一个数组已用完。我该如何处理这种情况?
【问题讨论】:
-
您的调试器可以帮助您。如果你急于让它工作,那么将所有元素放入 TreeSet 并读回内容。
-
是的,我使用了调试器。一个数组在合并完成之前用完。我该如何处理这种情况?
-
length 返回 6,但您的索引从 0 开始
-
你需要检查
i < my_array.length和j < alices_array.length。 -
我投票结束这个问题,因为它太本地化了。
标签: java arrays indexoutofboundsexception array-merge