我想調用循環中的方法,直到條件滿足(reps> = 1000),然後跳出循環並測試哪種方法更有效,然後跳回舊方法並忽略已調用的方法調用效率最低。這可能嗎?下面是我的示例代碼:我可以測試for循環中的條件嗎?如果符合,請忽略循環內的方法調用?
// Set the number of times each method is called
public void setReps(String target, String[] sa, long reps) {
shuffleArray(sa); // Shuffle the order of Strings in array
for (int i = 0; i < reps; i++) {
linearStringSearch(target, sa);
backwardLinearStringSearch(target, sa);
counter(); // counts winner
if (reps >= 1000)
chooseAlgorithm(target, sa);
}
因此,對於上面的代碼,我將測試linearStringSearch()和backwardLinearStringSearch(),看看哪個是經過1000個循環更有效,然後我想跳回和忽略任何linearStringSearch()或backwardLinearStringSearch()根據結果。我可以在chooseAlgorithm()方法中寫一個新的循環,但如果可能的話,我寧願跳回原來的循環。
我可能使用[策略模式](http://en.wikipedia.org/wiki/Strategy_pattern)。你可以在一個接口中定義一個「stringSearch」方法,通過'linear'和'reverse linear'搜索來實現它......然後編寫另一個實現來測試(a),(b)在選擇之前。 –
看起來不錯。我會給它一個 – LooMeenin