ArrayIndexOutOfBoundsException
是 Java 中常见的运行时异常,通常发生在试图访问数组中不存在的索引时。在合并排序数组的过程中,如果处理不当,也可能会遇到这个异常。
合并排序数组通常涉及到两个有序数组的合并。以下是一个简单的合并两个有序数组的示例代码,并解释如何避免 ArrayIndexOutOfBoundsException
:
public class MergeSortedArrays {
public static void main(String[] args) {
int[] arr1 = {1, 3, 5, 7};
int[] arr2 = {2, 4, 6, 8};
int[] mergedArray = new int[arr1.length + arr2.length];
int i = 0, j = 0, k = 0;
while (i < arr1.length && j < arr2.length) {
if (arr1[i] <= arr2[j]) {
mergedArray[k++] = arr1[i++];
} else {
mergedArray[k++] = arr2[j++];
}
}
// 处理剩余元素
while (i < arr1.length) {
mergedArray[k++] = arr1[i++];
}
while (j < arr2.length) {
mergedArray[k++] = arr2[j++];
}
// 打印合并后的数组
for (int num : mergedArray) {
System.out.print(num + " ");
}
}
}
i
用于遍历 arr1
。j
用于遍历 arr2
。k
用于遍历合并后的数组 mergedArray
。while
循环,当 i
和 j
都在各自数组的有效范围内时,比较两个数组的当前元素,将较小的元素放入 mergedArray
,并移动相应的指针。mergedArray
,则将另一个数组的剩余元素依次放入 mergedArray
。ArrayIndexOutOfBoundsException
:i
和 j
不会超出各自数组的长度。i
和 j
仍然在各自数组的有效范围内。通过上述方法,可以有效地合并两个有序数组,并避免 ArrayIndexOutOfBoundsException
。
领取专属 10元无门槛券
手把手带您无忧上云