首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用java将多个Treemaps合并成csv表

用java将多个Treemaps合并成csv表
EN

Stack Overflow用户
提问于 2017-02-12 02:31:21
回答 1查看 133关注 0票数 0

我是java的新手,正在尝试弄清楚如何将几个树图组合到一个表中。

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

代码语言:javascript
复制
a 1:4:7
b 1:7
d 2

现在,我的程序当前为几个文本文件创建了一个线程,并为每个文件创建了Treemaps。我想将这些树状图合并到一个输出中。假设我们有第二个文本文件,看起来像这样:

代码语言:javascript
复制
a 1:2:4
b 3
c 7

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

代码语言:javascript
复制
key,file1,file2
a,1:4:7,1:2:4
b,1:7,3
c,,7
d,2,

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-12 02:45:26

我认为您需要手动完成此操作。

我没有编译我的解决方案,它也没有写入csv文件,但它应该会给你提示:

代码语言:javascript
复制
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);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42179643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档