为了确保我不重新发明轮子,我想知道是否有一些已知的算法,类或其他可以帮我解决问题的方法。我有一个来自应用程序的大量URL。我想将这些URL提供给树,以创建类似站点地图的数据结构。
似乎这样的事情可能以前做过。但是,我从搜索中看到的所有内容似乎都是从xml到树。理想情况下,我想在Java中得到答案,但我确信如果有必要,我可以自己将其翻译成Java。如果我需要自己做,我可能会把每个网址分成几个索引。
[root] [0] [1] [1] -file wwe.site.com/dir1/dir2/file.html [root] [0] [1] [1] www.site.com/dirabc/dir2/file.html
因此,我会将每个网址解析为偏移[0], [1], [2], …
等,然后将这些网址深入到树中添加它们的位置。这至少是我最初的计划。我愿意接受任何建议!
答案 0 :(得分:1)
您可以将UrlTree定义为嵌套的HashMaps
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);
}
...
}
答案 1 :(得分:1)
您需要以反映被观察目录结构层次结构的方式实现TreeModel
。 FileTreeModel
是一个示例,ac.Name
是一个简单的类,用于解析复古文件系统的路径。另见How to Use Trees。 NetBeans Outline
的一个实例,如图here所示,将成为一个不错的替代视图。