【发布时间】:2017-02-02 14:33:16
【问题描述】:
我正在尝试编写一个简单的程序,您将在其中“收集”带有分数的不同对象,从而给出一种分数。例如,“保时捷”将获得一个由用户确定的分数,如果您输入一个新分数,该分数将被添加到旧值上。所以假设你给“保时捷” 100 分,然后加 50,总分应该是 150。程序还应该存储不同汽车的总分(所以如果我加上一辆 100 分的宝马,总分应该是250(150分来自保时捷))。
首先,我查看了汽车的 ArrayList,但是当我尝试添加新分数时,它只会用新值覆盖现有分数。
System.out.println("The name of the car: ");
String carName = readString();
Car car = findCar(carName);
if(car == null){
System.out.println("Car doesn't exist!");
return;
}
System.out.println("Add more points for the car: ");
car.setPoints(readInt());
carlist.add(car);
我想有一个简单的方法可以解决这个问题,但现在我一无所知,我的谷歌搜索技能也没有给我任何结果。
readInt() 和 readString() 只是我的扫描仪的方法
【问题讨论】:
-
car.setPoints(car.getPoints() + readInt());? -
或者干脆创建一个方法
addPoint(int),不禁止,getter和setter是一个标准但是你可以创建其他方法。 -
@IQV 非常感谢!哈哈...哦,伙计,我希望我能想到...跟进-似乎我正在创建同一辆车的副本。分数正在更新,但如果我将 50 和 100 加到同一个对象上,我现在得到 3 辆相同的汽车,但总数相同。仅在同一对象上添加分数需要什么?
标签: java arraylist add overwrite