2017-02-11 52 views
0

我是java新手,想弄清楚如何將多個treemaps合併到一個表中。將多個Treemaps與java結合到csv表中

我有一個Java程序讀取文本文件並創建索引文件中的單詞的樹形圖。輸出將單個單詞作爲關鍵字,並將其顯示的頁面列表作爲值。一個例子是這樣的:

a 1:4:7 
b 1:7 
d 2 

現在我的程序當前爲幾個文本文件創建一個線程併爲每個文件創建Treemaps。我想將這些樹圖組合成一個輸出。所以說,我們有第二個文本文件,它看起來像這樣:

a 1:2:4 
b 3 
c 7 

我想創建的最終輸出是一個CSV表看起來像這樣:

key,file1,file2 
a,1:4:7,1:2:4 
b,1:7,3 
c,,7 
d,2, 

有沒有結合的方法這樣的地圖?我是一名SQL開發人員,所以我的想法是將每個地圖與文件名一起打印到txt文件,然後根據文件名轉動此列表。這看起來並不像一個非常像java的方法來解決這個問題。

回答

1

我認爲你需要手動完成。

我沒有編譯我的解決方案,它沒有寫入到csv文件,但它應該給你提示:

public void writeCsv(List<MyTreeMap> list) { 
    Set<String> ids = new TreeSet<String>(); 

    // ids will store all unique key in your example: a,b,c,d 
    for(MyTreeMap m:list) { 
     for(String id:m.keySet()) { 
      ids.insert(id); 
     } 
    } 

    // iterate ids [a,b,c,d] 
    for(String id:ids) { 
     StringBuffer line = new StringBuffer(); 
     line.append(id); 
     for(MyTreeMap m:list) { 
      String pages = m.get(id); 
      // pages will contains "1:4:7" like your example. 
      line.append(","); 
      line.append(pages); 
     } 
     System.out.println(line); 
    } 
}