Как перебрать LinkedHashMap и выбрать между ключом и значением отдельно? - PullRequest
1 голос
/ 17 февраля 2012

На данный момент у меня есть это:

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 () итератора, мне нужно вынуть ключ и значение отдельно, чтобы я могположить некоторые вещи между ними в выходной файл.Кто-нибудь знает, как я это делаю?

Ответы [ 3 ]

3 голосов
/ 17 февраля 2012

Вы заметите, что итератор возвращает Map.Entry , который имеет getKey и getValue методы.

Используйте их, чтобы получить соответствующие элементы .... что-то вроде

while (mapIt.hasNext()){
   Map.Entry entry = mapIt.next();
   Object key = entry.getKey();
   Object value = entry.getValue();
   // format away..
}

Примечание. Я ставлю Object в качестве типов key и val, но вы должны указывать типы в соответствии с тем, как вы определили карту.

1 голос
/ 17 февраля 2012

С Как эффективно перебрать каждую запись на карте?

for (Map.Entry<String, String> entry : map.entrySet())
{
    System.out.println(entry.getKey() + "/" + entry.getValue());
}
1 голос
/ 17 февраля 2012

Поскольку итератор возвращает набор Map.Entry, вы можете получить ключ и значение отдельно из этого:

http://docs.oracle.com/javase/6/docs/api/java/util/Map.Entry.html

...