为什么我不能在java的数组中分配array.sort()的输出?

093gszye  于 2021-07-08  发布在  Java
关注(0)|答案(3)|浏览(543)

这个问题在这里已经有答案了

java错误:无法从void转换为int[][重复](3个答案)
上个月关门了。
我学习java已经有一段时间了,但是我还是一个初学者,我正在尝试编写一个片段,通过声明另一个数组来对java中的数组进行排序,其中它的元素是第一个数组的排序元素。但它显示了一个错误。原因可能是什么?

public static void main(String []args)
     {
       int[] arr = new int []{34,65,35,37,46,86};
       int res[];
       res=Arrays.sort(arr);
       for(int i: res)
       System.out.println(i+" ");
     }
}

Error: incompatible types: void cannot be converted to int[] 
       res=Arrays.sort(arr);
y1aodyip

y1aodyip1#

Arrays.sort(arr) 返回类型为void(https://www.geeksforgeeks.org/arrays-sort-in-java-with-examples/),不能将其分配给 res 类型 int[] . 相反,它修改已传递给函数的数组。
打个电话就行了 Arrays.sort(arr) 它本身和你的 arr 数组将被排序。

omhiaaxx

omhiaaxx2#

arrays.sort没有返回值。它通过更改内容参数数组(您的arr变量)在原始数组中的顺序来对其进行排序。意思是:你不必重新分配数组,只要调用arrays.sort(arr)就可以了,下次使用arr你会发现元素已经被排序了。

cclgggtu

cclgggtu3#

因为 Arrays.sort() 是一个 void 功能

public static void main(String []args)
     {
       int[] arr = new int []{34,65,35,37,46,86};
       Arrays.sort(arr);
       for(int i: arr ) {
        System.out.println(i+" ");
       }
     }
}

相关问题