我有一个使用TreeMap存储索引的程序。
TreeMap<String,Set<Integer>> map = new TreeMap<String,Set<Integer>>();
然后我使用PrintWriter将地图保存为txt文件。
PrintWriter printWriter = new PrintWriter(outputFile);
for(Map.Entry<String,Set<Integer>> entry : map.entrySet()){
printWriter.println(entry.getKey()+" "+entry.getValue());
}
printWriter.flush();
printWriter.close();
我正在尝试使输出outputFile看起来像这样:
! 5
"$200 218
"'deed 115
"'deed, 304
"a 5,6,22,28,148,176,302,347,387,401,410,442
相反,我得到了这个:
! [5]
"$200 [218]
"'deed [115]
"'deed, [304]
"a [5,6,22,28,148,176,302,347,387,401,410,442]
我怀疑括号是因为我使用了Set,但我不知道应该使用什么来获取括号。
答案 0 :(得分:2)
请记住,Set
是一种集合,因此当您想要在文件上打印它们的值时,会用括号括起来。如果要删除此括号,请测试以下代码:
PrintWriter printWriter = new PrintWriter(outputFile);
for(Map.Entry<String,Set<Integer>> entry : map.entrySet()){
printWriter.print(entry.getKey()+" ");
for(Integer value : entry.getValue()) {
printWriter.print(value + " ");
}
printWriter.print("\n");
}
所以你没有看到这个括号。
问候!
答案 1 :(得分:1)
getValue()
为您返回Set
,这就是您获得这些括号的原因。
您可以遍历集合的元素并打印它们 -
for (Map.Entry<String, Set<Integer>> entry : map.entrySet()) {
printWriter.print(entry.getKey()+ " ");
for( Integer setElement : entry.getValue()) {
printWriter.print(setElement + " ");
}
printWriter.println();
}