Java 尝试从用户输入对列表中的整数进行排序

Java 尝试从用户输入对列表中的整数进行排序,java,sorting,Java,Sorting,我正在尝试编写一些代码,允许用户输入许多数字,然后将它们放入一个列表中,然后对它们进行升序和降序排序 以下是我的Java代码: public static void questionThree() throws java.lang.Exception { int input1; int input2; int input3; int noAmount; List<Integer> numberList = new ArrayList<I

我正在尝试编写一些代码,允许用户输入许多数字,然后将它们放入一个列表中,然后对它们进行升序和降序排序

以下是我的Java代码:

public static void questionThree() throws java.lang.Exception {
    int input1;
    int input2;
    int input3;
    int noAmount;

    List<Integer> numberList = new ArrayList<Integer>();

    Scanner user_input = new Scanner( System.in );
    System.out.println("Enter the amount of numbers: ");

    noAmount = user_input.nextInt();
    for (int i = 0; i < noAmount; i++) {
        System.out.println("Enter a number: ");
        input2 = user_input.nextInt();
        numberList.add(input2);
    }

    Arrays.sort(numberList);

    for (int i = 0; i < numberList.size(); i++) {
        System.out.println(numberList.get(i));
    }
}
控制台抱怨我不能在这里使用排序

如何对刚刚放入列表的整数进行排序?

您应该使用而不是,因为您是对集合而不是数组进行排序:

Collections.sort(numberList);
关于您的代码的其他评论:

您应该遵守Java命名约定:用户输入应该重命名为用户输入。 您正在声明未使用的变量:input1和input3。 您应该尽量减少每个变量的范围。由于input2仅在循环内部需要,因此可以编写int-input2=userInput.nextInt;并删除其在方法开头的声明。 您应该使用而不是,因为您正在对集合而不是数组进行排序:

Collections.sort(numberList);
关于您的代码的其他评论:

您应该遵守Java命名约定:用户输入应该重命名为用户输入。 您正在声明未使用的变量:input1和input3。 您应该尽量减少每个变量的范围。由于input2仅在循环内部需要,因此可以编写int-input2=userInput.nextInt;并删除其在方法开头的声明。 该排序函数将数组作为输入,而不是集合。您使用的是Arrays类,该类用于对数组而不是集合进行排序

你应该使用

Collections.sort(numbersList);
因为您想按相反的顺序对列表进行排序

Collections.sort(list, Collections.reverseOrder());
该排序函数将数组作为输入,而不是集合。您使用的是Arrays类,该类用于对数组而不是集合进行排序

你应该使用

Collections.sort(numbersList);
因为您想按相反的顺序对列表进行排序

Collections.sort(list, Collections.reverseOrder());

谢谢你,伙计。还有,你要怎么让它下降呢?@ObeseOctopus很乐意帮忙。更新了我的帖子谢谢伙计。还有,你要怎么让它下降呢?@ObeseOctopus很乐意帮忙。更新了我的帖子谢谢你的建议,相应地更新了我的代码并对你的答案投了赞成票谢谢你的建议,相应地更新了我的代码并对你的答案投了赞成票