目前我有这个:
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(),我需要分别取出键和值,这样我就可以在outputfile中放入它们之间的一些东西。有人知道我是怎么做的吗?
您会注意到迭代器返回一个具有getKey
和getValue
方法的Map.Entry。
用这些来获得相应的项目。。。。类似的东西
while (mapIt.hasNext()){
Map.Entry entry = mapIt.next();
Object key = entry.getKey();
Object value = entry.getValue();
// format away..
}
注意,我将Object
作为key和val的类型,但您应该根据您定义Map的方式来指定类型。
由于迭代器返回一组Map.Entry,您可以从中分别获得键和值:
http://docs.oracle.com/javase/6/docs/api/java/util/Map.Entry.html
如何有效地迭代Map中的每个条目?
for (Map.Entry<String, String> entry : map.entrySet())
{
System.out.println(entry.getKey() + "/" + entry.getValue());
}