java - 如何打印 void 方法的结果

标签 java

我正在为编程入门课做作业,它是冒泡排序。代码可能有缺陷,但我并不是在寻找人来解决该问题。我的问题是,我正在尝试打印它。我得到的条件是该方法必须由“public static void sort(int[] array)”行的 void 方法定义。所以,如果我尝试导入数组,并使用 System.out.println(Arrays.toString(sort(array)));在我的主要方法中,它不起作用,因为我收到编译器错误,指出 void 不适用。如果我尝试将其放入主方法的循环中,它会告诉我存在不兼容的类型。找到的是一个void,需要的是一个int[],但是赋值的原始条件是使用void方法。因此,话虽这么说,我应该出于测试目的将方法从 void 更改为 int[] 并将作业作为 void 提交,还是有办法用 void 打印此代码的输出,而我只是缺少是吗?

public static void sort(int[] array)
      { 
        int[] y = new int[array.length];
        for(int i = 0; i<=array.length-1; i++)
        {
          for(int j = i+1; i<=array.length-1; j++)
          {
            if(array[i] < array[j]){
              y[i] = array[j];
            }
            if(array[i] >= array[j]){
              y[i] = array[i]; 
          }  
        }
          for(int k = 0; k<y.length; k++){
          System.out.println(y[k]);
          }
      } 
    } //end of sort method

最佳答案

问题是您在排序方法中创建了一个新的本地数组,由于分配的限制,您显然无法返回该数组。

int[] y = new int[array.length];

您的方法将无效,因为传递的数组将保持不变。您需要就地进行排序,即不创建新数组。这样,如果您从主方法传递它,它就会被排序,并且您可以在那里打印它。

Bubble sort应该使用swap方法,所以你只需要一个临时变量。

关于java - 如何打印 void 方法的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19883298/

相关文章:

java - 包不存在,需要 <identifier>

java - 删除java arraylist中的重复项

java - 如何使用共享首选项存储和检索 recyclerview 数据

java - 错误 : not a statement Else(

java - 如何设置多列表代号一个的样式?

java - initMiniDFSCluster 抛出NoClassDefFoundError(hadoop客户端测试)

java - 防止 JAXB XML 解析上的循环引用

java - 杀死这个 NumberFormatException

java - SSL 握手异常 :no cipher suites in common in spring integration TCP Server

java - xtend 支持多个构造函数吗?