我正在尝试编写一些代码,允许用户输入多个数字,然后将它们放入列表中,然后对它们进行升序排序,然后再下降。
这是我的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));
}
}
控制台抱怨我不能在这里使用排序。
如何对刚刚放入列表的整数进行排序?
答案 0 :(得分:3)
您应该使用Collections.sort
而不是Arrays.sort
,因为您要对Collection而不是数组进行排序:
Collections.sort(numberList);
其他关于您的代码的评论:
user_input
应重命名为userInput
。input1
和input3
。input2
仅在循环内部需要,因此您可以编写int input2 = userInput.nextInt();
并在方法开头删除其声明。答案 1 :(得分:3)
Arrays.sort(numberList);
该sort函数将数组作为输入而不是集合。您使用的Arrays
类用于对数组进行排序而不是Collections
。
你应该使用
Collections.sort(numbersList);
因为您想以相反的顺序对列表进行排序
Collections.sort(list, Collections.reverseOrder());