メソッドを再帰的に実行しようとしています。メソッドの反復ごとに、新しいものを作成ArrayList
していくつかの値を入力し、演算子でいくつかの条件をチェックしif
ます。true の場合、このメソッドを再度実行します。false の場合、メソッドの現在の反復を終了し、メソッドの以前の反復で の以前のコピーを使用して作業しますArrayList
。実際には、条件が false になり、メソッドの前の反復に進むと、同じ で作業しArrayList
ます。そして、それは悪いです。
メソッドの反復ごとに各インスタンスを作成するにはどうすればよいですか?ArrayList
また、前のメソッドでフォローバックするときに、その反復のインスタンスを使用するにはどうすればよいArrayList
ですか?
私のコード:
private List<List<String>> letsTry(List<List<ProbableValue>>
probableValues, List<List<String>> data) {
List<List<String>> copyOfData = new ArrayList<List<String>>(data);
List<List<ProbableValue>> copyOfProbableValues =
new ArrayList<List<ProbableValue>>(probableValues);
ProbableValue minPV = getMinPV(copyOfProbableValues);
Set<String> pValues = new HashSet<String>(minPV.getProbableValues());
int i = minPV.getI();
int j = minPV.getJ();
for (String v : pValues) {
if (checker.canSetOnTable(copyOfProbableValues, minPV)) {
if (!SUtils.isItsNumber(copyOfData.get(i).get(j))) {
copyOfData.get(i).set(j, v);
copyOfProbableValues.get(i).get(j).getProbableValues().clear();
checker.removeProbableValue(copyOfProbableValues, v, i, j);
}
letsTry(new ArrayList<List<ProbableValue>>(copyOfProbableValues),
new ArrayList<List<String>>(copyOfData));
}
}
return copyOfData;
}