【问题标题】:Combine multiple Treemaps into csv table with java用java将多个Treemaps组合成csv表
【发布时间】:2017-02-12 02:45:25
【问题描述】:

我是 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 的解决问题的方法。

【问题讨论】:

    标签: java csv treemap


    【解决方案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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      • 1970-01-01
      • 2016-07-16
      • 2020-07-14
      • 2019-12-19
      • 1970-01-01
      相关资源
      最近更新 更多