You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何跨文件传参 将数组传入MergeSort归并排序类

跨类调用归并排序的实现方法

你现有代码里的排序逻辑本身已经支持跨类调用,因为核心的MergeSort排序方法是public static修饰的公共静态方法,只需要按以下步骤操作即可:

1. 处理类的访问权限

  • 如果调用MergeSort的Java文件和MergeSort.java存放在同一目录(同一默认包)下,不需要额外导入,直接调用即可。
  • 如果两个文件不在同一包路径下,在调用类的代码顶部添加导入语句:import 对应包名.MergeSort;

2. 简化调用入口(推荐优化)

你当前的MergeSort方法需要手动传入排序的左右边界,外部调用时每次都要写0和array.length-1比较繁琐,可以在MergeSort类中添加一个重载方法,对外只需要接收数组参数,内部自动处理边界逻辑,还能做空数组校验避免报错:

// 新增到MergeSort类中
public static void MergeSort(int[] array) {
    // 空数组、长度为1的数组本身有序,直接返回
    if (array == null || array.length <= 1) {
        return;
    }
    // 调用你已经写好的带边界参数的排序方法
    MergeSort(array, 0, array.length - 1);
}

3. 其他类传参调用示例

你只需要把自己定义的数组,直接作为参数传给MergeSort的静态方法即可。Java中数组是引用类型,方法内部对数组的排序修改会直接作用在原数组上,不需要额外返回值。
比如新建测试类TestSort.java和MergeSort.java同目录,代码如下:

public class TestSort {
    public static void main(String[] args) {
        // 你自己业务里的待排序数组,不管是怎么生成的都可以直接传
        int[] myNums = {23, 5, 17, 3, 42, 9};
        // 直接传数组调用排序方法
        MergeSort.MergeSort(myNums);

        // 遍历原数组就能拿到排序后的结果
        for (int num : myNums) {
            System.out.print(num + " ");
        }
        // 输出:3 5 9 17 23 42
    }
}

补充说明:你写在MergeSort类里的main方法是类自身的程序入口,不会影响其他类的调用,不需要删除,不同类的main方法是互相独立的。

内容的提问来源于stack exchange,提问作者Achintya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 17:27:34