使用java将多个Treemaps组合到csv表中

时间:2017-02-11 18:31:21

标签: java csv treemap

我是java新手并试图弄清楚如何将多个树图组合成一个表。

我有一个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 个答案:

答案 0 :(得分: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);
    }
}