我想将两个数组列表合并到一个新的数组列表中,并遍历列表。在我对我的新数组列表进行操作之前,我想将一些值乘以 -1。然而问题是,当使用 addAll() 时,我还使用了多个我的旧数组列表。
public Polynoom subtract (Polynoom that) {
Polynoom subtract = new Polynoom();
subtract.termen.addAll(that.termen);
for (int i = 0; i < subtract.termen.size(); i++) {
subtract.termen.get(i).coef = subtract.termen.get(i).coef * -1;
}
subtract.termen.addAll(this.termen);
Collections.sort(subtract.termen);
subtract.removeDoubles();
return subtract;
}
我的 Polynoom 课程如下所示:
class Polynoom implements PolynoomInterface {
ArrayList<Paar> termen = new ArrayList<Paar>();
Polynoom() {
termen = new ArrayList<Paar>();
}
}
问题是(我认为):当使用 addAll() 时,它会创建 REFERENCES 而不是新副本,因此更改元素会同时改变两者。什么是克服这个问题的好方法?
我当然可以创建一个新对而不是 Polynoom 并将这对添加到一个新的 Polynoom 中,但我认为这不是很好的代码。有人有更好的主意吗?