Java 打印同一数组的两个重载方法?

Java 打印同一数组的两个重载方法?,java,arrays,Java,Arrays,我目前正在进行一项练习,以完成以下工作: 创建一个用随机整数填充[x]乘[x]数组的方法。(已完成) 创建用于打印数组的两个重载方法。一个打印加载的数组,另一个打印排序和加载的数组 使用以下主要方法: A.创建数组(完成) B调用方法以加载数组(完成) C调用方法以打印数组(完成) D调用方法以打印排序的数组(完成) 我不知道如何创建一个重载方法来同时打印一个加载的数组和一个排序的数组,所以我可能会感到困惑,但我希望能为破解这个问题提供任何帮助 我在过去的3个小时里对此进行了研究,花了30分钟来

我目前正在进行一项练习,以完成以下工作:

  • 创建一个用随机整数填充[x]乘[x]数组的方法。(已完成)
  • 创建用于打印数组的两个重载方法。一个打印加载的数组,另一个打印排序和加载的数组
  • 使用以下主要方法: A.创建数组(完成) B调用方法以加载数组(完成) C调用方法以打印数组(完成) D调用方法以打印排序的数组(完成)
  • 我不知道如何创建一个重载方法来同时打印一个加载的数组和一个排序的数组,所以我可能会感到困惑,但我希望能为破解这个问题提供任何帮助

    我在过去的3个小时里对此进行了研究,花了30分钟来创建代码并完成整个练习,除了过去2.5个小时尝试执行指令2

    //打印加载数组的方法
    公共静态void打印数组(int[]arr)
    {
    System.out.println(“加载的数组\n”);
    对于(int i=0;i

    我得到了相同的输出,但仍然对指令号2是什么感到非常困惑。

    简单地说,Java中的方法重载意味着类可以具有相同名称但具有不同参数列表的函数。这就是为什么您的任务需要实现两个功能,例如:

    static void printArray(int[][] loaded) {
        // TODO
    }
    
    static void printArray(int[][] loaded, int[][] sorted) {
        // TODO
    }
    

    您可以阅读有关重载的更多信息。

    重写方法可以通过更改参数的类型、顺序或数量来完成

    我建议按以下方式进行(更改参数的数量):

    publicstaticvoidmain(字符串[]args){
    int[]arr=新int[3][3];
    打印阵列(arr);
    打印数组(arr,true);
    }
    //方法打印加载的数组
    公共静态void打印数组(int[]arr){
    打印阵列(arr,false);
    }
    //方法打印排序后的数组
    公共静态void打印数组(int[]arr,布尔排序){
    System.out.println(“加载并排序的数组\n”);
    对于(int i=0;i
    这里有一个有效的解决方案:

    publicstaticvoidmain(字符串[]args){
    int[]arr={{2,3,1},{9,8,7},{5,6,4};
    System.out.println(“未排序数组:”);
    打印阵列(arr);
    System.out.println(“排序数组:”);
    打印数组(arr,true);
    }
    //方法打印加载的数组
    公共静态void打印数组(int[]arr){
    打印阵列(arr,false);
    }
    //方法打印排序后的数组
    公共静态void打印数组(int[]arr,布尔排序){
    对于(int i=0;i
    有两个方法具有相同的名称和相同的参数列表,这意味着方法
    printArray
    被重载


    i-loop
    迭代所有一维数组并对其排序。因此,在我们的例子中,对于大小为
    3,3
    数组的二维数组,sort
    被调用3次,因为其中包含3个一维数组。如果我们有一个大小为
    5,3
    的二维数组,
    array.sort
    将被调用5次。
    j-loop
    迭代整个数组的每个元素并打印其值。

    您可能应该说是参数列表,而不是参数列表。您在调用方法时提供参数,但是在谈到方法声明时,通常使用术语参数。这对我帮助很大,我感谢您的反馈!这个代码效率不高<代码>数组。排序(arr[i])
    不应在
    j循环中进行,而应在其之前进行。就像现在一样,数组被排序9次而不是3次。此外,初始数组未使用值初始化,并且缺少
    new
    关键字@BlakeBailey,我用正确的密码发布了一个新答案。不幸的是,我没有编辑这篇文章的权限。谢谢你的提示,我刚刚从线程开启器接管了代码。但是现在它是固定的。请移动语句
    Arrays.sort(arr[i])退出
    j
    循环。
    static void printArray(int[][] loaded) {
        // TODO
    }
    
    static void printArray(int[][] loaded, int[][] sorted) {
        // TODO
    }
    
      public static void main(String[] args) {
        int[][] arr = new int[3][3];
        printArray(arr);
        printArray(arr, true);
      }
    
      // method to print the loaded array
      public static void printArray(int[][] arr) {
        printArray(arr, false);
      }
    
      // method to print the sorted array
      public static void printArray(int[][] arr, boolean sort) {
        System.out.println("Loaded and Sorted Array \n");
        for (int i = 0; i < arr.length; i++) {
          if (sort) {
            Arrays.sort(arr[i]);
          }
          for (int j = 0; j < arr[i].length; j++) {
            System.out.print(arr[i][j] + " ");
          }
          System.out.println();
        }
      }