我有recrusive功能工作正常。問題是當行數很大時它給出了stackoverflow錯誤。我想把它放在迭代中,可能使用for循環。在做這件事時需要一些幫助。該方法的更改遞歸方法迭代
private TreeSet validate(int curLine, TreeSet errorSet) {
int increment = 0;
int nextLine = 0;
if (curLine == lines.length || errorSet.size() != 0) {
return errorSet;
} else {
String line = lines[curLine];
//validation starts. After validation, line is incremented as per the requirements
increment = 1 //As per requirement. Depends on validation results of the line
if (increment > 0) {
try{
Thread.currentThread().sleep(100);
}catch(Exception ex){
System.out.println(ex);
}
nextLine = (curLine + increment);
validate(nextLine, errorSet);
}
}
return errorSet;
}
海報的描述:
的方法確實驗證文本行,這些行有多少行已被跳過,如果該行是有效的指令。所以,如果該行是有效的,許多行將被跳過使用增量。如果行是無效的增量將是0
您正在調用'validate(nextLine,errorSet)'而不保存其返回值。這是故意的嗎?另外,由於前面的行,'if(increment> 0)'總是成立的:'increment = 1'。解釋該方法應該做什麼可能是一個好主意。 – 2012-07-30 16:12:40
它工作正常,所以我沒有保存它。 – FirmView 2012-07-30 16:17:17
增量不會總是> 0.如果行中有錯誤,則增量爲0. – FirmView 2012-07-30 16:19:15