很抱歉,如果标题的描述性不强,我真的不知道该如何措辞。
我有三个像这样的独立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。它们在定义后继续更新。使这些变量在赋值后继续更新的代码有什么问题?
这是针对大学的编码项目的,所以我不是在寻找确切的答案,而只是寻找不起作用的原因。除乘法函数中的代码外,所有代码均已提供,无法更改。乘法功能一定有问题,但我无法弄清楚原因。
谢谢。