为了确保我没有重新发明轮子,我想看看是否有一些已知的算法、类或其他东西可以帮助我解决我的问题。我有一个来自应用程序的大量 URL 列表。我想将这些 URL 馈送到树中以创建类似站点地图的数据结构。
好像以前也做过这样的事情。但是,我从搜索中看到的所有内容似乎都是从 xml 到树。理想情况下,我希望在 Java 中得到答案,但我确信如有必要,我可以自己将其翻译成 Java。如果我需要自己做,我可能会获取每个 URL 并将它们分解成索引。
[root] [0] [1] [1] -file wwe.site.com/dir1/dir2/file.html [root] [0] [1] [1] www.site.com/dirabc/dir2/file.html
因此,我会将每个 url 解析为偏移量 [0]、[1]、[2]、…
等,然后将它们深入到树中添加它们的位置。这至少是我最初的计划。我愿意接受任何和所有的建议!
最佳答案
您可以将 UrlTree 定义为嵌套的 HashMap
public class UrlTree {
private final Map<String, UrlTree> branches = new HashMap<String, UrlTree>();
public void add(String[] tokens, int i) {
if (i >= tokens.length) {
return;
}
final String token = tokens[i];
UrlTree branch = branches.get(token);
if (branch == null) {
branch = new UrlTree();
branches.put(token, branch);
}
branch.add(tokens, i + 1);
}
...
}
关于java - 将 URL 列表转换为树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12559227/