使用循环添加多个对象 for java

Adding multiple objects with loop for java

我正在尝试学习 oop,但找不到解决我的问题的方法。在这种情况下,我想将多个食物对象插入到数组列表中。我期望的结果是当我将示例 3 输入到限制器时,它应该打印我之后输入的任何内容,而不是它在索引 0 上创建某种额外的对象作为空白。

当前输出:

3
fried chicken
burger
[food: , food: fried chicken, food: burger]

Process finished with exit code 0

预期输出应为:

3
fried chicken
burger
sushi
[food: fried chicken , food: burger, food: sushi]

Process finished with exit code 0

这里是主要的:

package FoodRecommendation;

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

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        ArrayList<food> arrayList = new ArrayList<>();

        int limiter = in.nextInt();
        for (int j = 0; j < limiter ; j++) {
            arrayList.add(new food(in.nextLine()));
        }
        System.out.println(arrayList);
    }
}

这是食物:

package FoodRecommendation;

public class food {
    private String food;

    public food(String food) {
        this.food = food;
    }

    public String getFood() {
        return food;
    }

    @Override
    public String toString() {
        return "food: " + this.food;
    }
}

我确实知道为什么会发生这种情况,这是因为当“(new food(in.nextLine()))”被插入到一个循环中时,它总是在索引 0 上创建一个空白。但是我只是找不到解决方法。我希望有人能帮助我 :D

尽量放

in.nextLine();

之后
int limiter = in.nextInt();

在你的代码中。您代码中的第一个只是将 "" 作为输入。

或者您可以像这样将限制器值解析为整数

int limiter = Integer.parseInt(in.nextLine());

输出:

3

炸鸡

汉堡

寿司

[食物:炸鸡,食物:汉堡,食物:寿司]