Java函数:如何将两个数组合并为一个数组
发布时间:2023-12-03 13:58:39
在Java中,可以使用循环或者内置的System.arraycopy()方法将两个数组合并为一个数组。
1. 使用循环方式:
public static int[] mergeArrays(int[] arr1, int[] arr2) {
int len1 = arr1.length;
int len2 = arr2.length;
int[] mergedArr = new int[len1 + len2];
int i = 0, j = 0, k = 0;
while (i < len1 && j < len2) {
if (arr1[i] <= arr2[j]) {
mergedArr[k++] = arr1[i++];
} else {
mergedArr[k++] = arr2[j++];
}
}
while (i < len1) {
mergedArr[k++] = arr1[i++];
}
while (j < len2) {
mergedArr[k++] = arr2[j++];
}
return mergedArr;
}
2. 使用System.arraycopy()方法:
public static int[] mergeArrays(int[] arr1, int[] arr2) {
int len1 = arr1.length;
int len2 = arr2.length;
int[] mergedArr = new int[len1 + len2];
System.arraycopy(arr1, 0, mergedArr, 0, len1);
System.arraycopy(arr2, 0, mergedArr, len1, len2);
return mergedArr;
}
这两种方法都可以将两个数组合并为一个数组。第一种方法使用了循环来逐个比较两个数组中的元素,并将较小的元素放入合并后的数组中。第二种方法使用了System.arraycopy()方法,该方法可以将一个数组的内容复制到另一个数组中。在这种方法中,我们首先将第一个数组的内容复制到合并后的数组的前半部分,然后将第二个数组的内容复制到合并后的数组的后半部分。
以下是一个示例的使用代码:
public static void main(String[] args) {
int[] arr1 = {1, 3, 5, 7, 9};
int[] arr2 = {2, 4, 6, 8, 10};
int[] mergedArr = mergeArrays(arr1, arr2);
System.out.println("合并后的数组:");
for (int num : mergedArr) {
System.out.print(num + " ");
}
}
运行以上代码,将会输出合并后的数组:1 2 3 4 5 6 7 8 9 10。
总结:通过循环或者System.arraycopy()方法,可以将两个数组合并为一个数组。第一种方法适用于需要在合并过程中进行比较和操作的情况,而第二种方法则更加简洁和高效。根据实际需求选择合适的方法来合并数组。
