我的数组列表不保留最后一个答案

时间:2018-12-25 13:56:04

标签: java arraylist

当我键入1时,ArrayList现在为1,然后当我重新运行代码并键入2时,ArrayList打印2,但是我需要打印2,最后一个答案是1。

public static void main(String[] args) {
// write your code here
    ArrayList<Integer> num = new ArrayList<>();
    Scanner s= new Scanner(System.in);
    int answer =s.nextInt();
    num.add(answer);
    System.out.println(num);
    System.out.println(num.size());
}

3 个答案:

答案 0 :(得分:0)

每次运行该程序时,都会创建一个新的ArrayList对象(显然,新的ArrayList对象为空)。这就是为什么您看不到以前运行的输入的原因。

答案 1 :(得分:0)

要获取您在运行时为另一个运行时输入的元素,应将值保存在文件(辅助存储)中,并在运行程序时读取它 因此您的代码应该是这样的,在代码末尾,将新数据写回到同一文件中

ArrayList<Integer> num = new ArrayList<>();

    File file =  new File("file.txt"); 
        try (Scanner sc = new Scanner(file)) {
            while (sc.hasNextLine()){

                MyText+=sc.nextLine();
                num.add(Integer.parseInt(myText))
                 }

    Scanner s= new Scanner(System.in);
int answer =s.nextInt();
num.add(answer);
System.out.println(num);
System.out.println(num.size());

答案 2 :(得分:-1)

我不清楚您的目标是什么,如果重新运行该代码,arraylist将清除最后一个代码,您可能想尝试一下:

public static void main(String[] args) {
// write your code here
    ArrayList<Integer> num = new ArrayList<>();
    Scanner s= new Scanner(System.in);
    int answer =s.nextInt();
    num.add(answer);
    int answer2 = s.nextInt();
    num.add(answer2);
    for(int answers: num) {
        System.out.println(answers);
    }
}