如何迭代LinkedHashMap并分别在键和值之间进行选择



目前我有这个:

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中放入它们之间的一些东西。有人知道我是怎么做的吗?

您会注意到迭代器返回一个具有getKeygetValue方法的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());
}

最新更新