目前我有这个:
try{
// Create file
FileWriter fstream = new FileWriter("output");
BufferedWriter out = new BufferedWriter(fstream);
Iterator mapIt = assignments.entrySet().iterator();
while (mapIt.hasNext()){
out.write(mapIt.next().toString()+";\n");
}
//Close the output stream
out.close();
}
问题是,我不能只使用迭代器的toString(),我需要分别取出键和值,这样我就可以在输出文件中放一些东西。有谁知道我是怎么做到的?
答案 0 :(得分:3)
您会注意到迭代器返回Map.Entry,其中包含getKey
和getValue
方法。
使用它们来获取相应的项目....类似
while (mapIt.hasNext()){
Map.Entry entry = mapIt.next();
Object key = entry.getKey();
Object value = entry.getValue();
// format away..
}
注意我将Object
作为键和val的类型,但是您应该根据您定义的Map来指定类型。
答案 1 :(得分:1)
由于迭代器返回一组Map.Entry,你可以单独获取键和值:
http://docs.oracle.com/javase/6/docs/api/java/util/Map.Entry.html
答案 2 :(得分:1)
来自How to efficiently iterate over each Entry in a Map?
for (Map.Entry<String, String> entry : map.entrySet())
{
System.out.println(entry.getKey() + "/" + entry.getValue());
}