在尝试合并两个已排序的数组时遇到空指针异常(NullPointerException),通常是由于数组或其元素为null导致的。以下是一些基础概念、可能的原因以及解决方案。
以下是一个示例代码,展示了如何安全地合并两个已排序的数组,并处理可能的null情况:
public class MergeSortedArrays {
public static int[] merge(int[] arr1, int[] arr2) {
// 检查数组是否为null
if (arr1 == null && arr2 == null) {
return null;
}
if (arr1 == null) {
return arr2;
}
if (arr2 == null) {
return arr1;
}
int n1 = arr1.length;
int n2 = arr2.length;
int[] mergedArray = new int[n1 + n2];
int i = 0, j = 0, k = 0;
// 合并两个数组
while (i < n1 && j < n2) {
if (arr1[i] <= arr2[j]) {
mergedArray[k++] = arr1[i++];
} else {
mergedArray[k++] = arr2[j++];
}
}
// 处理剩余元素
while (i < n1) {
mergedArray[k++] = arr1[i++];
}
while (j < n2) {
mergedArray[k++] = arr2[j++];
}
return mergedArray;
}
public static void main(String[] args) {
int[] arr1 = {1, 3, 5};
int[] arr2 = {2, 4, 6};
int[] merged = merge(arr1, arr2);
if (merged != null) {
for (int num : merged) {
System.out.print(num + " ");
}
} else {
System.out.println("Merged array is null");
}
}
}
通过上述方法,可以有效避免空指针异常,并确保合并操作的稳定性。
领取专属 10元无门槛券
手把手带您无忧上云