动态定义列表

时间:2015-02-27 15:21:42

标签: java list

您好我正在尝试制作一个打印出元素的简单程序 列表。应该动态初始化列表 控制台(用户必须能够输入他想要的元素),以及 然后程序必须在控制台上打印。

我写了这段代码,但它在第13行给了我一些错误:

错误:

此行有多个标记

  • 令牌上的语法错误"(" ,;预期
  • void是变量的无效类型 - " keyPressed"
  • 令牌上的语法错误")",;预期

代码:

import java.util.ArrayList;
import java.util.Scanner;
import java.awt.*;
import java.awt.event.*;

public class test2 {

    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        ArrayList<Integer> list = new ArrayList();

        void keyPressed(KeyEvent e) {
            for(Integer i = 0;i < list.size();i++){
                i = (Integer) in.nextInt();
                list.add(i);
                if(e.getKeyCode() == KeyEvent.VK_ENTER){
                    System.out.println();
                }
            }
        }
    } 
}

3 个答案:

答案 0 :(得分:0)

keyPressed方法必须在main方法之外定义。此外,由于列表为空,因此for循环的主体不会被执行。你需要循环 - &#34;而#34; - 直到用户输入&#34; KeyEvent.VK_ENTER&#34;然后退出循环并打印列表。

答案 1 :(得分:0)

可能更容易做到这样的事情,而不是试图抓住每个按键:

import java.util.ArrayList;
import java.util.Scanner;


public class Test {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        ArrayList<Integer> list = new ArrayList();

        while(in.hasNextInt())
        {
            list.add(in.nextInt());
        }        

        System.out.println("Invalid integer entered.");
        System.out.println("List contents:");
        for(int i : list)
        {
            System.out.print(i + " ");
        }
    }
}

答案 2 :(得分:0)

Scanner in = new Scanner(System.in);
        int nextInt = in.nextInt();
        List<Integer> list = new ArrayList<>(nextInt);
        for (int i = 0; i < nextInt; i++) {
            list.add(in.nextInt());
        }
        for (Integer integer : list) {
            System.out.println(integer);
        }

用动态值输入存储和打印列表动态长度值的代码