我试图使用“排序”方法,但我收到一个错误

时间:2018-03-24 02:03:15

标签: java

以下是我尝试编写的方法的开头。但java不喜欢我使用Arrays.sort方法

它说我有一个,

  

不兼容类型:必需int [],发现无效。

谁能看到我哪里出错了?

static String [] findSpace(int lengthOfName1, int lengthOfName2, int lengthOfName3){
        String [] space = {":", ":", ":"};
        int [] lengthOfName = {0,0,0};
        int [] lengthOfNameSorted = {0, 0, 0};
        lengthOfName[0] = lengthOfName1; lengthOfName[1] = lengthOfName2; lengthOfName[2] = lengthOfName3;
        lengthOfNameSorted = Arrays.sort(lengthOfName);

2 个答案:

答案 0 :(得分:1)

Arrays.sort()返回void。它就地对阵列进行排序,从而破坏了初始顺序。

确保这就是你需要的。

您可以使用

int[] lengthOfNameSorted = Arrays.copyOf(lengthOfName, lengthOfName.length);
Arrays.sort(lengthOfNameSorted);

如果你真的需要一个数组的排序副本。

我通常更喜欢使用

 IntStream.of(lengthOfName).sorted().boxed().collect(Collectors.toList());

除非列表太大,否则拳击的内存和性能开销不可忽略。

答案 1 :(得分:1)

由于alex440markspace已经提到过,Java方法Arrays.sort()的类型为void,因此它不会返回您在{中找到的值{3}}针对Arrays.sort(int[])

的特定情况

话虽这么说,如果你想不出任何令人信服的理由在你提供的代码中同时拥有这两个数组,你可能只是将lengthOfNameSorted数组一起删除,因为你已经在排序{{ 1}}。