Integer[] lastExchange = new Integer[nColors];
Integer[] exchangeToAdd = new Integer[nColors];
lastExchange = getValue();
exchangeToAdd = getValue();
exchanges.add(exchangeToAdd);
Integer[] newExchange = new Integer[nColors];
while (true) {
newExchange = getValue(lastExchange);
Integer[] exchangeToAddForLoop = new Integer[nColors];
for (int i=0; i<nColors; i++) {
lastExchange[i] = newExchange[i];
exchangeToAddForLoop[i] = newExchange[i];
}
exchanges.add(exchangeToAddForLoop);
}
追加した
このコードで何をしようとしていますか?と呼ばれるリストにデータを入力(入力)する必要がありexchanges
ます。リストの最初の要素はですlastExchange
。コードに関する私の問題は、変数の複製を常に2つ作成する必要があることです(これが、コードがエレガントではないと思う理由ですが、より良い解決策を見つけることができません)。たとえば、最初に作成lastExchange
してから作成しますexchangeToAdd
(これはと同じ値ですlastExchange
)。同じことがループでも起こります。作成lastExchange
してから作成しますexchangeToAddForLoop
。lastExchange
後で変更されるため、リストに追加できないためです。
追加2
これが私の問題です。私はそのようなコードを持っています:
Integer[] e = getValue();
Integer[] e1 = getValue(); // <-- I do not like that.
exchanges.add(e1); // <-- I do not like that.
while (true) {
Integer[] e_new = getValue(e);
Integer[] e2 = new Integer[nColors]; // <-- I do not like that.
for (int i=0; i<nColors; i++) {
e[i] = e_new[i];
e2[i] = e_new[i]; // <-- I do not like that.
}
exchanges.add(e2); // <-- I do not like that.
}
そして私は計算する必要があり、さらにの計算e1
にe2
加えてe
。