遞歸返回文件的迭代器我想實現這樣的方法:如何實現方法在Java
public Iterator<File> getFiles(String root) {
// return an Iterator looping through all files in root and all files in sub-directories of roots (recursively)
}
在C#中,這可以很容易地與yield return
關鍵字來實現。在Java中,我懷疑我必須編寫大量複雜的代碼才能完成。有沒有解決這個問題的好方法?
編輯:我想返回的Iterator是「懶」,即只有在調用next()
時才返回一個新文件。 (這是C#的行爲yield return
提供的行爲。)
你能解釋一下爲什麼你想讓它變懶嗎? – 2009-04-24 11:44:40
因爲我不一定要經歷所有的下一個(),我可能想在兩者之間停下來(即用戶單擊「停止」)。如果我們不需要,那麼非常深的目錄結構的急切加載是昂貴的。 – 2009-04-24 14:50:44