Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向对象添加点而不覆盖现有点_Java_Arraylist_Add_Overwrite - Fatal编程技术网

Java 向对象添加点而不覆盖现有点

Java 向对象添加点而不覆盖现有点,java,arraylist,add,overwrite,Java,Arraylist,Add,Overwrite,我正试图写一个简单的程序,你将“收集”不同的对象与点,给出一种分数。例如,“Porsche”将获得一个由用户确定的点,如果您输入一个新点,该点将添加到旧值上。假设你给“保时捷”100分,再加上50分,总分应该是150分。该计划还应为不同的汽车存储总积分(因此,如果我添加一辆积分为100分的宝马,总积分应为250分(150分来自保时捷) 首先,我在ArrayList中查找汽车,但当我尝试添加新分数时,它只是用新值覆盖现有分数 System.out.println("The name of

我正试图写一个简单的程序,你将“收集”不同的对象与点,给出一种分数。例如,“Porsche”将获得一个由用户确定的点,如果您输入一个新点,该点将添加到旧值上。假设你给“保时捷”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
类中添加一个方法:

public int getPoints(){
    return points;
}
然后替换增量调用:

System.out.println("Add more points for the car: ");
car.setPoints(car.getPoints()+readInt());

Car
类中添加一个方法:

public int getPoints(){
    return points;
}
然后替换增量调用:

System.out.println("Add more points for the car: ");
car.setPoints(car.getPoints()+readInt());

这里有一个setter,根据定义,它替换值

您应该创建一个简单的方法,该方法将向现有方法添加值

我对数字字段使用了一种简单的语法(也很标准):

如果愿意,您可以在这里进行一些验证,拒绝负值或其他任何内容

编辑:对于第二个问题(这应该是一个不同的问题,但这是一个小错误)


您使用
Car-Car=findCar(carName)获取实例并且如果为空,则不执行任何操作。但是在你添加了一些积分之后,你就
carlist.add(car),因此除非您使用
findCar
将其删除,否则您将在该列表中添加相同的实例。

此处有一个setter,根据定义,它将替换该值

您应该创建一个简单的方法,该方法将向现有方法添加值

我对数字字段使用了一种简单的语法(也很标准):

如果愿意,您可以在这里进行一些验证,拒绝负值或其他任何内容

编辑:对于第二个问题(这应该是一个不同的问题,但这是一个小错误)


您使用
Car-Car=findCar(carName)获取实例并且如果为空,则不执行任何操作。但是在你添加了一些积分之后,你就
carlist.add(car),因此除非您使用
findCar
删除它,否则您将在该列表中添加相同的实例。

car.setPoints(car.getPoints()+readInt())
?或者只创建一个方法
addPoint(int)
,这是不被禁止的,getter和setter是标准的,但您可以创建其他方法。@IQV非常感谢!哈哈。。。哦,老兄,我希望我能想到这一点。。。跟进-似乎我正在创建同一辆车的副本。分数正在更新,但如果我给同一个对象加上50,那么100,我现在得到3辆相同的车,但总数相同。只有在同一对象上添加分数需要什么?
car.setPoints(car.getPoints()+readInt())
?或者只创建一个方法
addPoint(int)
,这是不被禁止的,getter和setter是标准的,但您可以创建其他方法。@IQV非常感谢!哈哈。。。哦,老兄,我希望我能想到这一点。。。跟进-似乎我正在创建同一辆车的副本。分数正在更新,但如果我给同一个对象加上50,那么100,我现在得到3辆相同的车,但总数相同。只有在同一个对象上才能添加分数需要什么?非常感谢!哈哈。。。哦,老兄,我希望我能想到这一点。。。来自另一个答案的重复回答:跟进-似乎我正在创建同一辆车的副本。分数正在更新,但如果我给同一个对象加上50,那么100,我现在得到3辆相同的车,但总数相同。只在同一个对象上添加分数需要什么?@zkulltrail这是一个不同的问题,但由于您在更新后添加了汽车,这似乎是合乎逻辑的;)如果findCar返回null(而不是使用return退出方法),您可以简单地添加一个新实例。再次感谢!抱歉,所有重复的答案,仍然在学习这个网站:)它只是通过删除carlist.add(car)工作;干杯,伙计@zkulltrail,没必要,我只是说关于SO的一个问题应该限制为一个问题。但这在这里是不必要的;)非常感谢!哈哈。。。哦,老兄,我希望我能想到这一点。。。来自另一个答案的重复回答:跟进-似乎我正在创建同一辆车的副本。分数正在更新,但如果我给同一个对象加上50,那么100,我现在得到3辆相同的车,但总数相同。只在同一个对象上添加分数需要什么?@zkulltrail这是一个不同的问题,但由于您在更新后添加了汽车,这似乎是合乎逻辑的;)如果findCar返回null(而不是使用return退出方法),您可以简单地添加一个新实例。再次感谢!抱歉,所有重复的答案,仍然在学习这个网站:)它只是通过删除carlist.add(car)工作;干杯,伙计@zkulltrail,没必要,我只是说关于SO的一个问题应该限制为一个问题。但这在这里是不必要的;)