如何在java中对数组进行排序?

时间:2015-07-21 17:23:23

标签: java arrays sorting

继承我的代码:

public static void main(String[] args) {
    System.out.println("Please enter the number of values you would like to enter: ");
    Scanner scan = new Scanner(System.in);
    int intNumberOfNumbers = scan.nextInt();

    ArrayList <Integer> intArray = new ArrayList();

    for (int i = 0; i < intNumberOfNumbers; i++) {
        System.out.println("Please enter a value for index " + i + ":");
        int intValue = scan.nextInt();
        intArray.add(intValue);
    }        
    System.out.println(intArray);

    int intSortedArray = Arrays.sort(intArray);
}

我正在尝试对一个数组进行排序并环顾四周,看到人们使用Arrays.sort()所以我累了但是它一直给我一个错误。求救!

3 个答案:

答案 0 :(得分:2)

以下是您的错误:int intSortedArray = Arrays.sort(intArray); 将其替换为Collections.sort(intArray);

答案 1 :(得分:1)

您将面临以下编译错误:

int intSortedArray = Arrays.sort(intArray);

Arrays.sort会返回void,因此您无法将其分配给变量

Arrays.sort及其重载也适用于基本类型的数组,因此无法处理ArrayList。因此,您最终会遇到编译错误。

请参阅Arrays.sort方法的documentation以了解正确的参数和返回类型。

然后,正确的排序方法是使用Collections.sort

答案 2 :(得分:1)

使用Collections实用程序类sort()方法,如下所示: -

public static void main(String[] args) {
    System.out.println("Please enter the number of values you would like to enter: ");
    Scanner scan = new Scanner(System.in);
    int intNumberOfNumbers = scan.nextInt();

    ArrayList <Integer> intArray = new ArrayList();

    for (int i = 0; i < intNumberOfNumbers; i++) {
        System.out.println("Please enter a value for index " + i + ":");
        int intValue = scan.nextInt();
        intArray.add(intValue);
    }        
    System.out.println(intArray);

    Collections.sort(intArray); // this will sort the Integer List
 System.out.println("sorted list : "+intArray);
}

有关Collections.sort() here的更多信息。