gpt4 book ai didi

java - 递归到迭代

转载 作者:行者123 更新时间:2023-12-01 17:33:34 24 4
gpt4 key购买 nike

我正在使用 Java 开发 Windows 桌面应用程序。在我的应用程序中,需要搜索所有.php。为此,我使用递归方法。

import java.io.File;

public class Copier {

public static void find(String source,String rep) {
File src = new File(rep);
if (src!= null && src.exists() && src.isDirectory()) {
String[] tab = src.list();
if (tab != null) {
for(String s : tab) {
File srcc = new File(rep+"\\"+s);
if (srcc.isFile()) {
if (srcc.getName().matches(".*"+source+"$")) {
System.out.println(s);
}
} else {
find(source,srcc.getAbsolutePath());
}
}
} else {
//System.out.println(" list is null");
}
}
}

public static void main(String[] args) {
try {
find(".java", "C:\\");
} catch (Exception e) {
e.printStackTrace();
}
}
}

是否可以使用迭代算法来做到这一点?

最佳答案

当然。使用breadth-first-search与队列。您从 C:\ 开始,每一步都会从队列中弹出顶部文件夹,并将所有子文件夹推送到队列末尾。

伪代码如下:

queue.push("C:\");
while (!queue.empty()) {
String topFolder = queue.pop();
foreach (subFolder of topFolder) {
queue.push(subFolder);
}
}

关于java - 递归到迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8565161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com