0
我試圖遞歸運行我的方法。在每次迭代的方法中,我創建新的ArrayList
並填充一些值並檢查if
運算符中的某些條件。如果這是真的,將再次運行此方法。如果它是錯誤的,我想退出當前方法的迭代,並在以前的ArrayList
複製方法的迭代中工作。在實踐中,當我的狀態變得錯誤並進入我的方法的前一次迭代時,我使用相同的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;
}
你是對的。是工作。謝謝。 – San4o 2013-03-10 08:05:52