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
相关产品推荐
相关产品推荐

