Я пытаюсь написать простую программу, в которой вы будете «собирать» разные объекты с точками, которые дают своего рода оценку. Например, «Porsche» получит точку, определенную пользователем, и если вы введете новую точку, эта точка будет добавлена к старому значению. Так что скажем, что вы даете «Porsche» 100 очков, а затем добавляете 50, общее количество очков должно составлять 150. Программа также должна хранить общее количество очков для разных автомобилей (поэтому, если я добавлю BMW с 100 очками, общее количество должно быть 250 (150 баллов приходится на Porsche)).Добавление точек к объекту без перезаписи существующих точек
Во-первых, я просматриваю свой 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());'? – IQV
или просто создать метод 'addPoint (int)', это не запрещено, getter и setter являются стандартными, но вы можете создавать другие методы. – AxelH
@IQV Спасибо большое! Ха-ха ... о человек, я бы хотел, чтобы я подумал об этом ... Последующие действия - похоже, я создаю дубликаты одного и того же автомобиля. Оценка обновляется, как следует, но если я добавлю 50, то 100 на тот же объект, я теперь получаю 3 одинаковых автомобиля, но с одинаковой суммой. Что необходимо для того, чтобы оценка была добавлена только на тот же объект? – zkulltrail