java实现合并两个已经排序的列表实例代码



// Java 实现合并两个已排序的列表
public class MergeSortedLists {
    
    // 假设我们有两个已排序的数组列表
    public static int[] mergeSortedArrays(int[] array1, int[] array2) {
        int length1 = array1.length;
        int length2 = array2.length;
        int[] mergedArray = new int[length1 + length2];
        
        int i = 0, j = 0, k = 0;
        
        // 遍历两个数组,按顺序合并到新的数组中
        while (i < length1 && j < length2) {
            if (array1[i] < array2[j]) {
                mergedArray[k++] = array1[i++];
            } else {
                mergedArray[k++] = array2[j++];
            }
        }
        
        // 如果有剩余的元素,直接复制到新数组的末尾
        while (i < length1) {
            mergedArray[k++] = array1[i++];
        }
        
        while (j < length2) {
            mergedArray[k++] = array2[j++];
        }
        
        return mergedArray;
    }
    
    public static void main(String[] args) {
        int[] array1 = {1, 3, 5, 7};
        int[] array2 = {2, 4, 6, 8, 10};
        
        int[] mergedArray = mergeSortedArrays(array1, array2);
        
        // 打印合并后的数组
        for (int num : mergedArray) {
            System.out.print(num + " ");
        }
    }
}

这段代码定义了一个`MergeSortedLists`类,其中包含了`mergeSortedArrays`方法用于合并两个已排序的整数数组,并返回一个新的合并后的数组。`main`方法中展示了如何使用这个方法,并打印了合并后的数组。注意,这里使用了简单的数组而非更复杂的列表结构(如`ArrayList`),以保持代码的简洁性。