2012-09-24 102 views
1

只是爲了確保我沒有重新發明輪子,我想看看是否有一些已知算法,類或可以幫助我解決問題的東西。我有一個來自應用程序的URL的巨大列表。我想將這些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], …等,以及那些被深度倒在樹裏添加他們。那至少是我最初的計劃。我願意接受任何和所有建議!

+0

你最喜歡的搜索引擎是一個很好的開始尋找東西的地方,以防止你重新發明輪子。你有什麼嘗試? –

回答

1

你可以定義你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); 
    } 

    ... 
} 
1

你需要能體現自己觀察到的目錄結構的層次結構中的方式來實現TreeModelFileTreeModel是一個示例,而ac.Name是一個簡單的類,它爲老式文件系統分析路徑。另見How to Use Trees。一個NetBeans Outline的實例,圖示爲here,將會是一個很好的替代視圖。