欢迎访问宙启技术站
智能推送

Java函数实现两个整数数组的合并

发布时间:2023-07-02 07:57:43

在Java中,我们可以通过创建一个新的数组来实现两个整数数组的合并。以下是一个简单的示例代码:

public class Main {
    public static void main(String[] args) {
        int[] array1 = {1, 2, 3};
        int[] array2 = {4, 5, 6};

        int[] mergedArray = mergeArrays(array1, array2);

        System.out.print("合并后的数组内容为:");
        for (int i = 0; i < mergedArray.length; i++) {
            System.out.print(mergedArray[i] + " ");
        }
    }

    public static int[] mergeArrays(int[] array1, int[] array2) {
        int length1 = array1.length;
        int length2 = array2.length;
        int length = length1 + length2;
        int[] mergedArray = new int[length];

        int i = 0, j = 0, k = 0;

        while (i < length1 && j < length2) {
            if (array1[i] < array2[j]) {
                mergedArray[k] = array1[i];
                i++;
            } else {
                mergedArray[k] = array2[j];
                j++;
            }
            k++;
        }

        while (i < length1) {
            mergedArray[k] = array1[i];
            i++;
            k++;
        }

        while (j < length2) {
            mergedArray[k] = array2[j];
            j++;
            k++;
        }

        return mergedArray;
    }
}

在上述示例代码中,我们首先定义了两个整数数组array1array2,分别存储了两个数组的元素。然后,我们调用mergeArrays函数来合并这两个数组,并将合并后的数组存储在mergedArray中。

mergeArrays函数的实现如下:

1. 首先,我们获取数组array1array2的长度,然后计算合并后数组的总长度。

2. 接下来,我们定义三个变量ijk,分别用于追踪数组array1array2和合并后的数组mergedArray的索引位置。

3. 使用while循环,我们比较array1[i]array2[j]的值,将较小的值存储在mergedArray[k]中,并相应地增加ijk的值。重复执行此操作,直到其中一个数组的所有元素都被合并到mergedArray中。

4. 最后,如果有一个数组的元素还没有被合并完,我们将剩余的元素依次存储在mergedArray中。

运行上述代码,输出将为:

合并后的数组内容为:1 2 3 4 5 6

上述代码中,我们假设输入的两个数组已经按照升序排列。如果两个数组没有按照升序排列,我们可以在实现之前先对两个数组进行排序。另外,上述代码只适用于合并两个数组。如果我们想要合并多个数组,可以使用类似的方法来实现。