我是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的方法来处理这个问题。
答案 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);
}
}