首页 > 解决方案 > java - 更改对象后如何保持对象不变

问题描述

对不起,如果标题不是很具有描述性,我真的不知道如何表达它。

我有三个单独的 ArrayList,如下所示:

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

其中都包含一个对象类型的 ArrayList,Objects

以及将值乘以某个整数值的函数:

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。它们在定义后继续更新。我的代码有什么问题导致这些变量在赋值后继续更新?

这是针对大学的一个编码项目,所以我不是在寻找一个确切的答案,而只是它不起作用的原因。除了乘法函数之外的所有代码都已提供,并且无法更改。乘法函数一定有问题,但我不知道为什么。

谢谢你。

标签: javavariablesarraylist

解决方案


推荐阅读