将多个树图组合成 csv table 和 java

Combine multiple Treemaps into csv table with java

我是 java 的新手,正在尝试弄清楚如何将多个树状图组合成一个 table。

我有一个 java 程序,它读取一个文本文件并创建一个树状图来索引文件中的单词。输出将单个单词作为键,将其出现的页面列表作为值。示例如下所示:

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

现在我的程序当前为多个文本文件创建线程并为每个文件创建树状图。我想将这些树图组合成一个输出。假设我们有第二个文本文件,如下所示:

a 1:2:4
b 3
c 7

我尝试创建的最终输出是一个 csv table,如下所示:

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

有没有这样合并地图的方法?我主要是一名 sql 开发人员,所以我的想法是将每个地图连同文件名打印到一个 txt 文件,然后根据文件名旋转此列表。不过,这似乎不是一个非常 java 解决问题的方法。

我认为你需要手动完成。

我没有编译我的解决方案,也没有写入 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);
    }
}