2 つの arraylist を 1 つの新しい arraylist にマージし、リストを反復処理したいと考えています。新しい配列リストに対してアクションを実行する前に、いくつかの値を -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 に追加することもできますが、それは本当にいいコードだとは思いません。誰かがより良いアイデアを持っていますか?