更改对象后如何保持对象不变

时间:2018-12-02 01:40:26

标签: java variables arraylist

很抱歉,如果标题的描述性不强,我真的不知道该如何措辞。

我有三个像这样的独立ArrayList:

Object m1 = new Object();
Object m2 = new Object();
Object m3 = new Object();

全部包含对象类型为Objects的ArrayList

和一个将值乘以某个整数的函数:

public void multiply(int n)  
{ 
    ArrayList<object> new_objects = new ArrayList<object>();
    for (int i=0;i<objects.size();i++) {
        Object o = objects.get(i); 
        o.setValue(o.getValue()*n);
        new_objects.add(e); //The multiplication and assignment works as intended here
    }
    this.objects=new_objects;
} 

例如,我使用以下函数调用此函数:

Object m2_product = m1.multiply(3);
Object m3_product = m1.multiply(3);

其目的是得到三个带有单独值的ArrayList:

具有原始值的m1

m2,原始值乘以3,然后

m3,原始值乘以9。

我的问题是,在打印这些ArrayLists值时,它们全部都乘以9。它们在定义后继续更新。使这些变量在赋值后继续更新的代码有什么问题?

这是针对大学的编码项目的,所以我不是在寻找确切的答案,而只是寻找不起作用的原因。除乘法函数中的代码外,所有代码均已提供,无法更改。乘法功能一定有问题,但我无法弄清楚原因。

谢谢。

0 个答案:

没有答案