将URL列表转换为树

时间:2012-09-24 05:20:57

标签: java swing sitemap jtree

为了确保我不重新发明轮子,我想知道是否有一些已知的算法,类或其他可以帮我解决问题的方法。我有一个来自应用程序的大量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], …等,然后将这些网址深入到树中添加它们的位置。这至少是我最初的计划。我愿意接受任何建议!

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)

您需要以反映被观察目录结构层次结构的方式实现TreeModelFileTreeModel是一个示例,ac.Name是一个简单的类,用于解析复古文件系统的路径。另见How to Use Trees。 NetBeans Outline的一个实例,如图here所示,将成为一个不错的替代视图。