首页 > 解决方案 > 添加到对象的 ArrayList?

问题描述

对于初学者来说,这是给学校的。不是在寻找答案,但是在将日期和重量都添加​​到对象中然后将该对象添加到数组列表中时,我迷路了。

public void addEntry(String d, int w) {
    Diet dietConstructor = new Diet();
    entries = new Entry(d, w);
    diet.add(entries);
}

此方法是添加到对象然后添加到数组列表中的方法。

我不确定它是否将对象错误地添加到数组列表中,或者当我尝试打印值时它只是调用最后输入并打印它。下面是我试图打印值的地方。

public void viewList()
{
    String output = "";

    weightDiff = 0;

    for (int i = 0; i < diet.size(); i++)
    {
        weightLossOrGain = entries.getWeight();

        System.out.print("  " + diet.get(i) + "\t      ");
        System.out.print(diet.get(i) + "\t   ");

        System.out.print(weightDiff + "\n\n");

        weightLossOrGain -= entries.getWeight();
    }

    System.out.println("-------------------------------\n");
    System.out.println("Net Weight Loss/Gain = " + weightLossOrGain + "\n");
    System.out.println("-------------------------------\n\n");

}

标签: javaobjectarraylist

解决方案


根据我从您的问题中了解到的情况,您正在重新使用条目作为对象来将对象添加到 ArrayList。

您正在正确地将对象添加到 ArrayList 中,那里没有错误。

您实际上并没有从 ArrayList 访问权重,而是访问了最后一个对象的权重,这就是为什么您只是获取最后一个对象的值。

我在这里没有正确理解您的最终目标。但这是您应该在 viewList 函数中修改的内容:

weightLossOrGain -= diet.get(i).getWeight();

推荐阅读