java更新对象并将其存储在数组列表中

java更新对象并将其存储在数组列表中,java,arrays,for-loop,java.util.scanner,Java,Arrays,For Loop,Java.util.scanner,好的,我需要创建一个对象,使用Java scanner方法修改它的值,将它添加到列表中,然后执行3次,这样列表中就有3个对象,所有对象都具有不同的值。然后我需要使用for循环来打印每个对象 这是到目前为止我的代码。但是,每次for循环输出到控制台时,它都会打印3个对象。。但是它们的值都是相同的(最终修改的值),为了简单起见,除非请求,否则我不会添加我的类或方法代码。就这样被困在这里 ArrayList<Car>carList = new ArrayList<Car>();

好的,我需要创建一个对象,使用Java scanner方法修改它的值,将它添加到列表中,然后执行3次,这样列表中就有3个对象,所有对象都具有不同的值。然后我需要使用for循环来打印每个对象

这是到目前为止我的代码。但是,每次for循环输出到控制台时,它都会打印3个对象。。但是它们的值都是相同的(最终修改的值),为了简单起见,除非请求,否则我不会添加我的类或方法代码。就这样被困在这里

ArrayList<Car>carList = new ArrayList<Car>();

Car b = new Car(0, 0, 0, 0);

modifyCar(b);
carList.add(b);

modifyCar(b);
carList.add(b);

modifyCar(b);
carList.add(b);


for(Car x: carList)
{
   x.print();
}
ArrayListcarList=新的ArrayList();
b车=新车(0,0,0,0);
改装汽车(b);
加上(b);
改装汽车(b);
加上(b);
改装汽车(b);
加上(b);
对于(x车:carList)
{
x、 打印();
}

您正在创建一个Car实例,然后在列表中存储对该实例的引用

然后修改该实例,并存储对同一辆车的另一个引用

最后,您将得到一个列表,其中包含对同一辆汽车的3个引用,这将产生modifyCar()所做的任何操作的结果


在每次调用modifyCar之前创建一辆新车。

您要更改一个对象的值,3次。每次修改前,您都需要创建一个新的
Car
实例。代码中只有一个
Car
实例。好的,那么您的意思是。。为了让我在列表中有3个不同的对象,我必须有车c=new Car()和车d=new Car()?不,如果你愿意,你可以重用b=new Car()。