2017-05-03 48 views
-1

我試圖解決一個問題,該問題找到一個有效的解決方案的一個國際象棋問題的數量和代碼打印時,它打印92對象的數組PartialSolution我做的是正確的解決方案。這是遞歸完成的,我需要將這些數組添加到數組列表中,但我無法弄清楚。 這裏是我的代碼:在遞歸方法內創建一個ArrayList

public ArrayList<PartialSolution> solve(PartialSolution sol){ 
    ArrayList<PartialSolution> solutions = new ArrayList<PartialSolution>(); 
    int exam = sol.examine(); 
    if(exam == PartialSolution.accept){ 
     solutions.add(sol); 
    } 
    else if(exam != PartialSolution.abandon){ 
     for(PartialSolution p : sol.extend()){ 
      solve(p); 
     } 
    } 
    return solutions; 
} 
+1

你使用'x'? – nandsito

+0

是否要使用數組列表來存儲解決方案,以便不必重複不必要的計算?或者你只是想要一個數組列表來存儲解決方案以備後用? –

+0

我需要數組列表來存儲解決方案供以後使用@MoeA –

回答

0

定義在類中的變量,並添加您的列表,以該列表,而不是打印。 或者讓你的求解方法將第二個參數作爲列表並將返回類型從void改爲列表。對於第一次調用,給它一個空列表並在每次遞歸調用中傳遞該列表。在結束返回列表

0

如果需要的ArrayList只是存儲供以後使用的解決方案,那麼你應該創建列表出像方法:

static ArrayList<PartialSolution> x = new ArrayList<PartialSolution>(); 

則只是解決方案添加到列表當你打印溶膠。