在同一行上将多个int添加到ArrayList

时间:2020-05-01 18:40:40

标签: java arrays arraylist

我正在编写一个程序,该程序将接受用户输入,并根据他们的选择按升序或降序对其进行排序。我尝试使用简单的数组,但无法与数组排序方法一起正常工作,因此我尝试了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变量,因此即使它不以任何方式影响程序,也需要将其存在。

1 个答案:

答案 0 :(得分:3)

当您说nextInt()时,它仅采用第一个整数4

您需要循环输入。

for (int i = 0; i < size; i++) {
    arrayList.add(scan.nextInt());
}

注意:在一行中输入整数将允许您输入无限制的整数,但是它将仅接受n整数,其中nsize 。如果您在不同的行上输入n,则程序将在输入后停止。

相关问题