Java 将多个整数添加到同一行上的ArrayList
我正在编写一个程序,它将接受用户输入,并根据用户选择的内容按升序或降序进行排序。我尝试使用一个简单的数组,但它不能与数组排序方法一起正常工作,所以我尝试了一个ArrayList。除了它只读取用户键入的第一个int之外,这似乎是可行的。我尝试了addAll方法,但它似乎只适用于集合,而不适用于变量 这是我的代码:Java 将多个整数添加到同一行上的ArrayList,java,arrays,arraylist,Java,Arrays,Arraylist,我正在编写一个程序,它将接受用户输入,并根据用户选择的内容按升序或降序进行排序。我尝试使用一个简单的数组,但它不能与数组排序方法一起正常工作,所以我尝试了一个ArrayList。除了它只读取用户键入的第一个int之外,这似乎是可行的。我尝试了addAll方法,但它似乎只适用于集合,而不适用于变量 这是我的代码: import java.util.Scanner; import java.util.ArrayList; import java.util.Collections; public cl
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);
}
}
输出:
[4]
顺便说一句,这里有一个size变量,因为这是一个通过程序自动输入size变量的赋值,所以它需要在那里,即使它不会以任何方式影响程序。当你说nextInt()
时,它只取第一个整数,即4
您需要在循环中获取输入
for (int i = 0; i < size; i++) {
arrayList.add(scan.nextInt());
}
for(int i=0;i
注意:在一行中输入整数将允许您输入无限整数,但它只接受
n
整数,其中n
是大小。如果您在不同的行中输入每个输入,程序将在n
输入后停止。您的问题是使用scan.nextInt()
。当您键入4 3 6 8 9 2 1 5 7
时,您将发送一个字符串“4 3 6 8 9 2 1 5 7”
,不再发送整数。然后由您来拆分此字符串。@OlivierDepriester实际上,我非常确定Scanner#nextInt
可以处理由空格分隔的整数是的,但不能作为整数数组处理,因为它将提取标记,直到找到一个非数字的标记为止。看看@Harshal Parekhanswer@OlivierDepriester好的,我认为您建议对所有子字符串使用scan.next()和String#split,然后是Integer.parseInt
for (int i = 0; i < size; i++) {
arrayList.add(scan.nextInt());
}