我正在编写一个程序,该程序将接受用户输入,并根据他们的选择按升序或降序对其进行排序。我尝试使用简单的数组,但无法与数组排序方法一起正常工作,因此我尝试了ArrayList。除了只读取用户键入的第一个int的事实外,这似乎可行。我尝试了addAll方法,但它似乎仅适用于集合,而不适用于变量。
这是我的代码:
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
public class ElevenThree {
public static void main (String[] args) {
Scanner scan = new Scanner(System.in);
ArrayList<Integer> arrayList = new ArrayList<Integer>();
int size = 0;
int type = scan.nextInt();
if(type == 0) {
size = scan.nextInt();
arrayList.add(scan.nextInt());
Collections.sort(arrayList);
}
if (type == 1) {
size = scan.nextInt();
arrayList.add(scan.nextInt());
Collections.sort(arrayList, Collections.reverseOrder());
}
System.out.println(arrayList);
}
}
输入:
0
9
4 3 6 8 9 2 1 5 7
输出:
[4]
顺便说一句,我在那里有size变量,因为这是通过程序的分配,该程序会自动输入size变量,因此即使它不以任何方式影响程序,也需要将其存在。
答案 0 :(得分:3)
当您说nextInt()
时,它仅采用第一个整数4
。
您需要循环输入。
for (int i = 0; i < size; i++) {
arrayList.add(scan.nextInt());
}
注意:在一行中输入整数将允许您输入无限制的整数,但是它将仅接受n
整数,其中n
是size
。如果您在不同的行上输入n
,则程序将在输入后停止。