java - 数组中的多个对象(java)

标签 java arrays object methods java.util.scanner

我想使用 Scanner 的结果创建对象并将它们添加到数组中。

但是,每次我第二次请求用户输入时,它只会覆盖第一个对象。

如何向数组添加多个对象?

这是我的代码:

public void ajoutadd() {
    int i=0;
    boolean boucle=true;
    while(i!=2){
        Scanner thegame = new Scanner(System.in);
        System.out.print("name: \n");
        String jname = lejeu.nextLine();
        System.out.print(jname);
        Scanner qty = new Scanner(System.in);
        System.out.print("qty \n");
        int jqty = qty.nextInt();
        Scanner cat = new Scanner(System.in);
        System.out.print("cat: \n");
        String categ = cat.nextLine();
        Scanner price = new Scanner(System.in);
        System.out.print("price: \n");
        int jprice = price.nextInt();
        Game agame = new Game(jname,jqty,categ,jprice);
        System.out.print(unjeu.Nom);

        // creating the array to contain the game(s)
        ArrayList<Game> thegame = new ArrayList<Game>(); 

        thegame.add(new Game(jname,jqty,categ,jprice));

        // actually only display 1 object that is overwritten
        // each time after the loop
        System.out.println(thegame);

        i=i++;
    }
}

最佳答案

您的循环实际上并没有覆盖第一个值。它只是创建一个 new ArrayList每次循环。

您应该创建一个 ArrayList 并不断地向其添加内容。

例如

ArrayList<Game> games = new ArrayList<Game>();
while(...) {
   ...
   games.add(...);
   ...
}

注意事项:

  • 您不必创建 new Scanner对于每个 scan你可以只使用同一个(也可以像数组列表一样在循环外初始化它)。

  • i=i++可能只是 i++ , i++递增变量 i,它不同于 i + 1 .相当于i = i + 1 .

  • 最好使用 List ArrayList 的接口(interface)变量,以便您的代码无论使用哪个 List 都可以正常工作您使用的实现。

关于java - 数组中的多个对象(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27477145/

相关文章:

java - Mysql数据库中的日期时间类型

javascript - 如何定位数组中的负数,以获得所有正数的总和?

c++ - 对象 std::string 出错

c# - 在 C# 中寻找可用的不可变 bool 数组

r - 在 renderPlot 之外的 Shiny 中为 renderTable 提供一个对象

javascript - 在加载时设置 JavaScript 中多个文本区域元素的高度

Java Spring boot - OnceRequestPerFilter 仅允许 Controller 请求映射

java - Apache POI - 如何在 Grails 应用程序中提供 excel 文件下载

parallel-processing - 在四个CPU核心/八个CPU线程上执行单个程序

ios - 选择一个按钮后,如何取消选择阵列中的所有其他按钮?