Java Hashmap Iteration: посмотрите на два значения одновременно? - PullRequest
1 голос
/ 17 сентября 2009

У меня есть этот цикл:

 for (Map.Entry<Integer, String> entry: collection.entrySet()) {

 }

Я бы хотел сравнить entry и следующий после этого. Как бы я это сделал?

Ответы [ 2 ]

6 голосов
/ 17 сентября 2009

Вы делаете это на предыдущем.

Map.Entry<Integer, String> previous = null;
for (Map.Entry<Integer, String> entry : collection.entrySet()) {
  if (previous != null) {
    // compare entry to rpevious
  }
  previous = entry;
}
4 голосов
/ 17 сентября 2009

Когда вы зацикливаетесь, вы можете установить переменную с именем oldEntry, например (инициализируется в нуль) и использовать ее так, как вам нужно.

 Map.Entry<Integer,String> oldEntry = null;
 for (Map.Entry<Integer, String> entry: collection.entrySet()) {
   if (oldEntry != null) doStuff(oldEntry, newEntry);
   oldEntry = entry;
 }
...