对于初学者来说,这是上学的。没有寻找答案,但将日期和权重都添加到对象中,然后将该对象添加到arraylist中时我迷路了。
public void addEntry(String d, int w) {
Diet dietConstructor = new Diet();
entries = new Entry(d, w);
diet.add(entries);
}
此方法是先添加到对象然后再添加到数组列表的方法。
我不确定它是否将对象错误地添加到arraylist中,或者当我尝试打印值时,它只是调用最后输入的内容并进行打印。 下面是我尝试打印值的地方。
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");
}
答案 0 :(得分:1)
根据我对您的问题的了解,您正在将条目重新用作对象,以将该对象添加到ArrayList中。
您已将对象正确添加到ArrayList中,那里没有错误。
您实际上并没有从ArrayList中访问权重,而是在访问最后一个对象的权重,这就是为什么仅获取最后一个对象的值的原因。
我在这里无法正确理解您的最终目标。但是,这是您应该在viewList函数中修改的:
weightLossOrGain -= diet.get(i).getWeight();