使用Arrays.sort()时为什么一直出现此错误?

时间:2018-03-26 15:22:46

标签: java arrays sorting

这是代码:

import java.util.Arrays;
import java.util.*;
public class MyClass {
public static void main(String[] args) {
    int sum = 0;
    System.out.println("I will ask you to add 5 integers and I will add 5 to 
    each integer.\n");

    Scanner askInput = new Scanner(System.in);
    System.out.println("Please enter 5 integers:");

    int[] array = new int[5];
    array[0] = askInput.nextInt();
    array[1] = askInput.nextInt();
    array[2] = askInput.nextInt();
    array[3] = askInput.nextInt();
    array[4] = askInput.nextInt();

    System.out.println("\n");

    for(int i = 0; i < array.length; i++)
    {
        sum = array[i] + 5;
        System.out.println(sum);
    }

    System.out.println(Arrays.sort(array[0]));



}
}

这是我的错误:

/MyClass.java:26:错误:没有为sort(int)找到合适的方法         的System.out.println(Arrays.sort(数组[0]));

/MyClass.java:26:错误:&#39; void&#39;这里不允许输入         的System.out.println(Arrays.sort(阵列));

当我从&#34;(数组)&#34;中删除[0]时出现此错误。

2 个答案:

答案 0 :(得分:2)

'void' type not allowed here System.out.println(Arrays.sort(array));

您无法打印void类型。

您已收到此错误,因为Arrays.sort(array)已对array 进行排序;也就是说,它确实返回一个新的排序项数组,它直接修改你传递的数组的内容作为参数。

您可以改为执行以下操作:

//Arrays.toString() returns a string representation of an array so you can print it
System.out.println(Arrays.toString(array)); 
//sort it
Arrays.sort(array);
//print the now sorted array
System.out.println(Arrays.toString(array)); 

文档:https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#sort(int[])

答案 1 :(得分:0)

如果导入java.util.Arrays,也无需导入java.util.*。这是因为导入java.util.*时会自动导入java.util中的所有内容,包括java.util.Arrays,但是为了解决您的问题,您无法直接打印数组。但是,要将数组转换为String,可以使用Arrays.toString(array)。需要注意的一点是Arrays.sort(array)没有返回任何内容并直接修改数组,所以你可能想要预先克隆你的数组,如果你需要原始的东西,完全修复你的代码遵循Strikegently&#39; s溶液