递归返回文件的迭代器我想实现这样的方法:如何实现方法在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